This package provides a simple interface to the ActiveCampaign API v3.
Currently the packages only supports the endpoints Contacts
, Custom Fields Values
and Tags
. Feel free to PR the remaining endpoints.
Version | Release |
---|---|
10.x | 1.2 |
9.x | 1.1 |
composer require label84/laravel-active-campaign
php artisan vendor:publish --provider="Label84\ActiveCampaign\ActiveCampaignServiceProvider" --tag="config"
ACTIVE_CAMPAIGN_BASE_URL=
ACTIVE_CAMPAIGN_API_KEY=
Access via facade:
use Label84\ActiveCampaign\Facades\ActiveCampaign;
// Usage
$contact = ActiveCampaign::contacts()->get(1);
Resolve directly out of the container:
use Label84\ActiveCampaign\ActiveCampaign;
// Usage
$contact = resolve(ActiveCampaign::class)->contacts()->get(1);
Inject into a constructor or method via automatic injection:
use Label84\ActiveCampaign\ActiveCampaign;
class ContactController extends Controller
{
public function __construct(private readonly ActiveCampaign $activeCampaign) { }
// Usage
$this->activeCampaign->contacts()->get(1);
}
The following examples use the facade for simplicity and assume Label84\ActiveCampaign\Facades\ActiveCampaign
has been imported.
$contact = ActiveCampaign::contacts()->get(1);
See the API docs for a full list of possible query parameters.
$contacts = ActiveCampaign::contacts()->list();
$contactByEmail = ActiveCampaign::contacts()->list('[email protected]');
$singleList = ActiveCampaign::contacts()->list('listid=1');
$contactId = ActiveCampaign::contacts()->create('[email protected]', [
'firstName' => 'John',
'lastName' => 'Doe',
'phone' => '+3112345678',
]);
$contact = ActiveCampaign::contacts()->sync('[email protected]', [
'firstName' => 'John',
'lastName' => 'Doe',
'phone' => '+3112345678',
]);
use Label84\ActiveCampaign\DataObjects\ActiveCampaignContact;
$contact = new ActiveCampaignContact(
id: 1,
email: '[email protected]',
phone: '+3112345678',
firstName: 'John',
lastName: 'Deer',
);
ActiveCampaign::contacts()->update($contact);
The status should be 1
for subscribed and 2
for unsubscribed
$contact = ActiveCampaign::contacts()->updateListStatus(
contactId: 1,
listId: 1,
status: 1,
);
ActiveCampaign::contacts()->delete(1);
$contactTagId = ActiveCampaign::contacts()->tag(
id: 1,
tagId: 20
);
ActiveCampaign::contacts()->untag(contactTagId: 2340);
$fieldValue = ActiveCampaign::fieldValues()->get(50);
$fieldValueId = ActiveCampaign::fieldValues()->create(
contactId: 1,
fieldId: 50,
value: 'active',
);
use Label84\ActiveCampaign\DataObjects\ActiveCampaignFieldValue;
$fieldValue = new ActiveCampaignFieldValue(
contactId: 1,
field: 50,
value: 'inactive',
);
ActiveCampaign::fieldValues()->update($fieldValue);
ActiveCampaign::fieldValues()->delete(50);
$tag = ActiveCampaign::tags()->get(100);
$tags = ActiveCampaign::tags()->list();
$filteredTags = ActiveCampaign::tags()->list('test_');
$tag = ActiveCampaign::tags()->create(
name: 'test_tag',
description: 'This is a new tag'
);
use Label84\ActiveCampaign\DataObjects\ActiveCampaignTag;
$tag = new ActiveCampaignTag(
id: 100,
name: 'test_tag',
description: 'Another description',
);
ActiveCampaign::tags()->update($tag);
ActiveCampaign::tags()->delete(100);
./vendor/bin/phpstan analyse