aivakha/activecampaign-wrapper-v3

Wrapper for ActiveCampaing API v3

1.0.1 2022-01-20 12:01 UTC

This package is auto-updated.

Last update: 2024-04-20 17:07:41 UTC


README

Wrapper for ActiveCampaign API v3.
Allows to make calls in ActiveCampaign services and work with data, using PHP. Simple and easy to use.
Services available so far:

  • Lists
  • Contacts
  • Tags

Official API documentation

https://developers.activecampaign.com/v3/reference

Installation

ActiveCampaign API v3 Wrapper is available on Packagist. Just add this line to your composer.json file in require section

"aivakha/activecampaign-api-v3-wrapper": "^1.0"

or open terminal window and run

composer require aivakha/activecampaign-api-v3-wrapper

Usage

Wrapper allows you to chain methods and use singe instance to apply all needed filters and queries.

Setup

<?php

// include required classes
require 'vendor/autoload.php';

// add namespace
use ActiveCampaign\ActiveCampaign;

// create wrapper instance
$ac = new ActiveCampaign('YOUR_ACTIVE_CAMPAIGN_URL', 'YOUR_ACTIVE_CAMPAIGN_KEY');

Get service models

To get access to activecampaign api endpoints, you need to create service model first. Here is how you can do it:

// lists
$lists = $ac->lists();

// contacts
$contacts = $ac->contacts();

// tags
$tags = $ac->tags();

Basic example

To retrieve all lists, call for the ->all() method. This method should be always at the very end of your chain sequence:

$lists = $ac->lists()->all();

Note that by default, activecampaign api returns 20 items. To change that, you need to use pagination() method

Pagination

https://developers.activecampaign.com/v3/reference#pagination
Pagination allows you to get needed amount of items and make offsets.

// ->paginate($limit, $offset = 0)

// fetch 50 lists
$paginated_lists = $ac->lists()->paginate(50)->all();

Sorting

https://developers.activecampaign.com/v3/reference#section-ordering
You can sort results in needed order. Use ->orderby() method and pass as argument an array, where key is the name of field and value is order (asc or desc).

// get all contacts and sort them by email in asc order and by last name in desc order
$contacts = $ac->contacts()->order(['email' => 'asc', 'lastName' => 'desc'])->all();

Filtering

https://developers.activecampaign.com/v3/reference#section-filtering
You can filter results by multiple parameters. Use ->filter() method and pass an array as argument, where key is parameter name and value is parameter value.

// get contacts where first name is equal to John
$contacts = $ac->contacts()->filter(['firstName' => 'john'])->all();

URL Queries

Additionaly, you can add any parameter to url that will be send to activecampaign endpoint. Use ->query() method and pass as argument an array with parameters key and value

$ac->tags()->query(['foo' => 'bar'])->all();

Get item by ID

To access any item by it's ID, use ->get($id) method.

// get tag with ID == 1
$tag = $ac->tags()->get(1);

Advanced examples

// skip 10 tags and get next 50 tags, also order them by description
$tags = $ac->tags()->orderby(['description' => 'asc'])->paginate(50, 10)->all();

// get contact where email is equal to 'john@mail.com'
$contact = $ac->contacts()->getByEmail('john@mail.com');

// create new contact
$ac->contacts()->create([
  'email'     => 'johndoe@example.com',
  'firstName' => 'John',
  'lastName'  => 'Doe',
  'phone'     => '7223224241'
]);

// create new tag
$ac->tags()->create([
  'tag'         => 'My Tag',
  'tagType'     => 'contact',
  'description' => 'Description'
]);

// add tag to contact
$ac->contacts()->addTag([
  'contact' => '1', // contact ID
  'tag'     => '20' // tag ID
]);

Available methods

Lists

https://developers.activecampaign.com/v3/reference#lists

Method Description
get($list_id) Get list by ID
all() Get all lists
create($params) Create list https://developers.activecampaign.com/reference#create-new-list
createGroup($params) Create list group permission https://developers.activecampaign.com/reference#create-a-list-group-permission
delete($list_id) Delete list by ID

NOTE: When creating a new list, it is important to then associate that list to a group permission

Contacts

https://developers.activecampaign.com/v3/reference#contact

Method Description
get($contact_id) Get contact by ID
getByList($list_id) Get contacts by list ID
getByTag($tag_id) Get contacts by tag ID
getByEmail($email) Get contact by email
all() Get all contact
create($params) Create contact https://developers.activecampaign.com/reference#create-contact
createOrUpdate($params) Create contact or update if it's already exists (sunc by email) https://developers.activecampaign.com/reference#create-contact-sync
update($contact_id, $params) Update contact https://developers.activecampaign.com/reference#update-a-contact
delete($contact_id) Delete contact by ID
getCustomFieldValue($custom_field_id) Get custom field value
allCustomFieldValues() Get all custom fields values
createCustomFieldValue($params) Create custom field value https://developers.activecampaign.com/reference#retrieve-fields
addTag($params) Add tag to contact https://developers.activecampaign.com/reference#create-contact-tag
deleteTag($contact_tag_id) Delete tag from contact
getTags($contact_id) Get all contact's tags
getLists($contact_id) Get all contact's lists
updateListStatus($params) Update list status on contact https://developers.activecampaign.com/reference#update-list-status-for-contact
getContactFieldValues($contact_id) Get contact field values
updateCustomFieldValue($custom_field_id, $params) Update contact custom field value

Tags

https://developers.activecampaign.com/reference#tags

Method Description
get($tag_id) Get tag by ID
all() Get all tags
create($params) Create tag https://developers.activecampaign.com/reference#create-a-new-tag
update($tag_id, $params) Update tag https://developers.activecampaign.com/reference#update-a-tag
delete($tag_id) Delete tag by ID