Warning
This package is no longer maintained.
We have decided to stop maintaining this package. We don't use ActiveCampaign anymore and don't have the time to maintain this package.
Suggested alternative: https://github.com/rossbearman/laravel-active-campaign
Feel free to fork our code and adapt it to your needs.
This package provides a simple interface to the ActiveCampaign API v3.
Currently the packages only supports the endpoints Contacts
, Custom Fields
, Custom Fields Values
, Tags
and Lists
. 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=info@example.com');
$singleList = ActiveCampaign::contacts()->list('listid=1');
$contactId = ActiveCampaign::contacts()->create('info@example.com', [
'firstName' => 'John',
'lastName' => 'Doe',
'phone' => '+3112345678',
]);
$contact = ActiveCampaign::contacts()->sync('info@example.com', [
'firstName' => 'John',
'lastName' => 'Doe',
'phone' => '+3112345678',
]);
use Label84\ActiveCampaign\DataObjects\ActiveCampaignContact;
$contact = new ActiveCampaignContact(
id: 1,
email: 'info@example.com',
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);
$field = ActiveCampaign::fields()->get(1);
$fieldId = ActiveCampaign::fields()->create(
type: 'textarea',
title: 'about',
description: 'Short introduction',
);
use Label84\ActiveCampaign\DataObjects\ActiveCampaignField;
$fieldValue = new ActiveCampaignField(
id: 1,
type: 'textarea',
title: 'about',
description: 'Relevant skills',
);
ActiveCampaign::fields()->update($fieldValue);
ActiveCampaign::fields()->delete(1);
$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