PHPackages                             nlincs/marketing-cloud-laravel - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. nlincs/marketing-cloud-laravel

ActiveLibrary[API Development](/categories/api)

nlincs/marketing-cloud-laravel
==============================

Salesforce Marketing Cloud integration for Laravel applications.

v0.1.3(3mo ago)07MITPHPPHP ^8.1CI failing

Since Apr 16Pushed 3mo agoCompare

[ Source](https://github.com/Nlincs/marketing-cloud-laravel)[ Packagist](https://packagist.org/packages/nlincs/marketing-cloud-laravel)[ RSS](/packages/nlincs-marketing-cloud-laravel/feed)WikiDiscussions Master Synced 3w ago

READMEChangelogDependencies (2)Versions (5)Used By (0)

Marketing Cloud Laravel
=======================

[](#marketing-cloud-laravel)

A lightweight Laravel package for interacting with Salesforce Marketing Cloud.

- Handles authentication and token refresh internally
- Supports Data Extension upserts
- Supports subscribe / unsubscribe
- Works with email-only subscribers or models

Installation
------------

[](#installation)

```
composer require nlincs/marketing-cloud-laravel
```

Publish the config:

```
php artisan vendor:publish --tag=marketingcloud-config
```

Configure .env:

```
MC_ORG_ID=
MC_CLIENT_ID=
MC_CLIENT_SECRET=
MC_LIST_ID=
```

Configuration
-------------

[](#configuration)

After publishing the config file, declare your Data Extensions in `config/marketingcloud.php`.

Example:

```
return [
    'org_id' => env('MC_ORG_ID'),
    'client_id' => env('MC_CLIENT_ID'),
    'client_secret' => env('MC_CLIENT_SECRET'),

    // Used for subscribe / unsubscribe (SOAP API)
    'list_id' => env('MC_LIST_ID'),

    // Data Extensions used for storing subscriber data
    'data_extensions' => [
        'newsletter' => [
            'key' => env('MC_NEWSLETTER_DE_KEY'),
            'primary_key' => 'Subscriber Key',
        ],
    ],
];
```

Basic Usage (Email-only Subscribers)
------------------------------------

[](#basic-usage-email-only-subscribers)

This package does not require a User model.
You can work with email-only subscribers using the `Subscriber` value object.

```
use Nlincs\MarketingCloudLaravel\Subscriber;
use Nlincs\MarketingCloudLaravel\MarketingCloudService;

$subscriber = Subscriber::fromEmail('test@example.com');

$mc = app(MarketingCloudService::class);

// Store subscriber data
$mc->dataExtension('newsletter')->upsert($subscriber);

// Subscribe the user
$mc->subscribe($subscriber);
```

Data Extensions vs Subscriptions
--------------------------------

[](#data-extensions-vs-subscriptions)

- **Data Extensions** are used to store subscriber data (REST API).
- **Subscribe / Unsubscribe** actions are performed against a Marketing Cloud List (SOAP API).

These are configured separately and serve different purposes.

Testing
-------

[](#testing)

The package includes a built-in fake to allow testing without making HTTP requests to Marketing Cloud.

```
use Nlincs\MarketingCloudLaravel\Testing\MarketingCloudFake;
use Nlincs\MarketingCloudLaravel\Subscriber;

MarketingCloudFake::activate();

$subscriber = Subscriber::fromEmail('test@example.com');

$mc->dataExtension('newsletter')->upsert($subscriber);
$mc->subscribe($subscriber);

// Assertions
MarketingCloudFake::assertUpserted('newsletter', $subscriber);
MarketingCloudFake::assertSubscribed($subscriber);
```

###  Health Score

33

—

LowBetter than 72% of packages

Maintenance81

Actively maintained with recent releases

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity36

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

4

Last Release

99d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/15370285?v=4)[lukep11a](/maintainers/lukep11a)[@lukep11a](https://github.com/lukep11a)

---

Top Contributors

[![lukep11a](https://avatars.githubusercontent.com/u/15370285?v=4)](https://github.com/lukep11a "lukep11a (13 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/nlincs-marketing-cloud-laravel/health.svg)

```
[![Health](https://phpackages.com/badges/nlincs-marketing-cloud-laravel/health.svg)](https://phpackages.com/packages/nlincs-marketing-cloud-laravel)
```

###  Alternatives

[exsyst/swagger

A php library to manipulate Swagger specifications

35916.4M7](/packages/exsyst-swagger)[hubspot/api-client

Hubspot API client

24016.2M20](/packages/hubspot-api-client)[pocketmine/bedrock-protocol

An implementation of the Minecraft: Bedrock Edition protocol in PHP

172445.0k18](/packages/pocketmine-bedrock-protocol)[botman/driver-telegram

Telegram driver for BotMan

93459.5k6](/packages/botman-driver-telegram)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
