Search all guides

Reference · Tools

ActiveCampaign integration

Manage contacts, accounts, deals, tags, lists, connections, and e-commerce data in ActiveCampaign

Action Marketing v1

The ActiveCampaign node reads and writes data across your ActiveCampaign account — contacts, deals, accounts, tags, lists, connections, and e-commerce records — using the v3 API. You can build workflows that sync new signups as contacts, push them into a deal pipeline, and tag them based on purchase events, all without leaving BusyBot.

Works as
Action
Tool name
active_campaign
Operations
5 — Create , Delete , Get , Get Many , Update
Parameters
128
Outputs
Output, Error
Credentials
ActiveCampaign API
Official docs
ActiveCampaign docs developers.activecampaign.com

What you can build with ActiveCampaign

  • Create a new contact in ActiveCampaign.
  • Get all deals from ActiveCampaign.
  • Add a tag to a contact.
  • Create an e-commerce order.
  • Update account information.

Overview

ActiveCampaign is a marketing automation platform that combines email marketing, CRM and sales automation. This node reads and writes your ActiveCampaign data through the v3 API: create, fetch, update and delete contacts, accounts, account-contact links, deals and deal notes, tags, connections, e-commerce customers, e-commerce orders and e-commerce order products, and page through your lists. Choose a resource first, then an operation — the node then shows only the fields that operation needs.

Node Type

Action — processes input items and produces output

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires ActiveCampaign API credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Accountaccount
Account ContactaccountContact
Connectionconnection
Contactcontact
Contact ListcontactList
Contact TagcontactTag
Dealdeal
E-Commerce CustomerecommerceCustomer
E-Commerce OrderecommerceOrder
E-Commerce Order ProductecommerceOrderProducts
Listlist
Tagtag

Operations

Every resource carries its own operation list. Changing the resource changes both the operations offered and the fields shown below them.

Account

OperationValueDescription
CreatecreateCreate a new account.
DeletedeleteDelete an existing account.
GetgetRetrieve a single account by ID.
Get ManygetAllRetrieve multiple accounts.
UpdateupdateUpdate an existing account.

Account Contact

OperationValueDescription
CreatecreateLink a contact to an account.
DeletedeleteDelete an account-contact link.
UpdateupdateUpdate an account-contact link.

Connection

OperationValueDescription
CreatecreateCreate a new connection to an external service.
DeletedeleteDelete an existing connection.
GetgetRetrieve a single connection by ID.
Get ManygetAllRetrieve multiple connections.
UpdateupdateUpdate an existing connection.

Contact

OperationValueDescription
CreatecreateCreate a new contact, optionally updating one that already exists.
DeletedeleteDelete an existing contact.
GetgetRetrieve a single contact by ID.
Get ManygetAllRetrieve multiple contacts, with filtering and sorting.
UpdateupdateUpdate an existing contact.

Contact List

OperationValueDescription
AddaddSubscribe a contact to a list.
RemoveremoveUnsubscribe a contact from a list.

Contact Tag

OperationValueDescription
AddaddApply a tag to a contact.
RemoveremoveRemove a contact-tag link.

Deal

OperationValueDescription
CreatecreateCreate a new deal.
Create NotecreateNoteAdd a note to a deal.
DeletedeleteDelete an existing deal.
GetgetRetrieve a single deal by ID.
Get ManygetAllRetrieve multiple deals.
UpdateupdateUpdate an existing deal.
Update Deal NoteupdateNoteUpdate an existing note on a deal.

E-Commerce Customer

OperationValueDescription
CreatecreateCreate a new e-commerce customer.
DeletedeleteDelete an existing e-commerce customer.
GetgetRetrieve a single e-commerce customer by ID.
Get ManygetAllRetrieve multiple e-commerce customers.
UpdateupdateUpdate an existing e-commerce customer.

E-Commerce Order

OperationValueDescription
CreatecreateCreate a new e-commerce order or abandoned cart.
DeletedeleteDelete an existing e-commerce order.
GetgetRetrieve a single e-commerce order by ID.
Get ManygetAllRetrieve multiple e-commerce orders.
UpdateupdateUpdate an existing e-commerce order.

E-Commerce Order Product

OperationValueDescription
Get ManygetAllRetrieve order products across all orders.
Get by Product IDgetByProductIdRetrieve a single order product by its ID.
Get by Order IDgetByOrderIdRetrieve every order product belonging to one order.

List

OperationValueDescription
Get ManygetAllRetrieve the lists in your account.

Tag

OperationValueDescription
CreatecreateCreate a new tag.
DeletedeleteDelete an existing tag.
GetgetRetrieve a single tag by ID.
Get ManygetAllRetrieve multiple tags.
UpdateupdateUpdate an existing tag.

Parameters

Account: Create

ParameterTypeRequiredDefaultDescription
NamestringYes—Account’s name.
Additional FieldscollectionNo{}
Options: 1, cdate, ASC
— Account URLstringNo—Account’s website.
— FieldsfixedCollectionNo{}Account custom fields. Field ID can be found via GET /api/3/accountCustomFieldMeta.
— — Field IDstringNo—ID of the custom field.
— — Field ValuestringNo—Value of the field to set.

Account: Delete

ParameterTypeRequiredDefaultDescription
Account ID (accountId)numberYes0ID of the account to delete.

Account: Get

ParameterTypeRequiredDefaultDescription
Account ID (accountId)numberYes0ID of the account to get.

Account: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo100Max number of results to return. (shown when Return All is false)
SimplifybooleanNotrueWhether to return a simplified version of the response.
FilterscollectionNo{}
— SearchstringNo—Search by name.

Account: Update

ParameterTypeRequiredDefaultDescription
Account ID (accountId)numberYes0ID of the account to update.
Update FieldscollectionNo{}The fields to update.
— NamestringNo—Account’s name.
— Account URLstringNo—Account’s website.
— FieldsfixedCollectionNo{}Account custom fields.
— — Field IDstringNo—ID of the custom field.
— — Field ValuestringNo—Value of the field to set.

Account Contact: Create

ParameterTypeRequiredDefaultDescription
Account ID (account)numberYes0The account ID.
Contact ID (contact)numberYes0The contact ID.
Additional FieldscollectionNo{}
Options: 1, cdate, ASC
— Job TitlestringNo—Job title of the contact at the account.

Account Contact: Delete

ParameterTypeRequiredDefaultDescription
Account Contact IDnumberYes0ID of the account contact to delete.

Account Contact: Update

ParameterTypeRequiredDefaultDescription
Account Contact IDnumberYes—ID of the account contact to update.
Update FieldscollectionNo{}The fields to update.
— Job TitlestringNo—Job title of the contact at the account.

Connection: Create

ParameterTypeRequiredDefaultDescription
ServicestringYes—The name of the service.
External Account IDstringYes—The ID of the account in the external service.
Account NamestringYes—The name associated with the account in the external service.
Logo URLstringYes—The URL to a logo image for the external service.
Link URLstringYes—The URL to a page where the integration with the external service can be managed.

Connection: Delete

ParameterTypeRequiredDefaultDescription
Connection ID (connectionId)numberYes0ID of the connection to delete.

Connection: Get

ParameterTypeRequiredDefaultDescription
Connection ID (connectionId)numberYes0ID of the connection to get.

Connection: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo100Max number of results to return. (shown when Return All is false)
SimplifybooleanNotrueWhether to return a simplified version of the response.

Connection: Update

ParameterTypeRequiredDefaultDescription
Connection ID (connectionId)numberYes0ID of the connection to update.
Update FieldscollectionNo{}The fields to update.
— ServicestringNo—The name of the service.
— External Account IDstringNo—The ID of the account in the external service.
— Account NamestringNo—The name associated with the account.
— Logo URLstringNo—The URL to a logo image.
— Link URLstringNo—The URL to a page for integration management.
— StatusnumberNo1The status of the connection (0 = error; 1 = connected).
— Sync StatusnumberNo1The sync status (0 = sync stopped; 1 = sync running).

Contact: Create

ParameterTypeRequiredDefaultDescription
EmailstringYes—The email of the contact to create.
Update if ExistsbooleanNofalseWhether to update user if it exists already. If not set and user exists it will error instead.
Additional FieldscollectionNo{}
Options: 1, cdate, ASC
— Custom FieldsfixedCollectionNo{}Adds custom fields. Field ID can be found via GET /api/3/fields.
— — Field IDstringNo—ID of the custom field. Find via GET /api/3/fields?limit=100.
— — Field ValuestringNo—Value of the field to set.
— First NamestringNo—The first name of the contact.
— Last NamestringNo—The last name of the contact.
— PhonestringNo—Phone number of the contact.

Contact: Delete

ParameterTypeRequiredDefaultDescription
Contact ID (contactId)numberYes0ID of the contact to delete.

Contact: Get

ParameterTypeRequiredDefaultDescription
Contact ID (contactId)numberYes0ID of the contact to get.

Contact: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo100Max number of results to return. (shown when Return All is false)
SimplifybooleanNotrueWhether to return a simplified version of the response instead of the raw data.
Additional FieldscollectionNo{}
Options: 1, cdate, ASC
— DatetimestringNo—Contacts created on the specified date.
— EmailstringNo—Email address of the contact you want to get.
— Email LikestringNo—Filter contacts that contain the given value in the email address.
— ExcludestringNo—Exclude from the response the contact with the given ID.
— Form IDstringNo—Filter contacts associated with the given form.
— List IDstringNo—Filter contacts associated with the given list.
— SearchstringNo—Filter contacts that match the given value in contact names, organization, phone or email.
— Segment IDstringNo—Return only contacts that match a list segment.
— Series IDstringNo—Filter contacts associated with the given automation.
— StatusoptionsNo—
Options: 1, -1, 3, 0, 2
— Tag IDstringNo—Filter contacts associated with the given tag.
— Created BeforestringNo—Filter contacts that were created prior to this date.
— Created AfterstringNo—Filter contacts that were created after this date.
— Updated BeforestringNo—Filter contacts that were updated before this date.
— Updated AfterstringNo—Filter contacts that were updated after this date.
— Wait IDstringNo—Filter by contacts in the wait queue of an automation block.
— Order ByoptionsNo—
Options: cdate, email, first_name, last_name, name, score
— Order DirectionoptionsNoDESC
Options: ASC, DESC

Contact: Update

ParameterTypeRequiredDefaultDescription
Contact ID (contactId)numberYes0ID of the contact to update.
Update FieldscollectionNo{}The fields to update.
— Custom FieldsfixedCollectionNo{}Adds custom fields. Field ID can be found via GET /api/3/fields.
— — Field IDstringNo—ID of the custom field.
— — Field ValuestringNo—Value of the field to set.
— EmailstringNo—Email of the contact.
— First NamestringNo—First name of the contact.
— Last NamestringNo—Last name of the contact.
— PhonestringNo—Phone number of the contact.

Contact List: Add

ParameterTypeRequiredDefaultDescription
List IDnumberYes—The list ID.
Contact ID (contactId)numberYes—The contact ID.

Contact List: Remove

ParameterTypeRequiredDefaultDescription
List IDnumberYes—The list ID.
Contact ID (contactId)numberYes—The contact ID.

Contact Tag: Add

ParameterTypeRequiredDefaultDescription
Tag IDstringYes—The tag ID. Find via GET /api/3/tags or the Tags resource in this tool.
Contact ID (contactId)numberYes—The contact ID.

Contact Tag: Remove

ParameterTypeRequiredDefaultDescription
Contact Tag IDnumberYes0ID of the contact tag to delete.

Deal: Create

ParameterTypeRequiredDefaultDescription
TitlestringYes—The title of the deal.
Deal’s Contact IDnumberYes0The ID of the deal’s contact.
Deal ValuenumberYes0The value of the deal in cents.
CurrencystringYesusdThe currency of the deal in 3-character ISO format (e.g. usd, eur, gbp).
Deal Pipeline IDstringNo—The pipeline ID of the deal.
Deal Stage IDstringNo—The stage ID of the deal.
Deal Owner IDstringNo—The owner ID of the deal.
Additional FieldscollectionNo{}
Options: 1, cdate, ASC
— DescriptionstringNo—The description of the deal.
— Deal PercentagenumberNo0The percentage of the deal.
— Deal StatusnumberNo0The status of the deal.

Deal: Create Note

ParameterTypeRequiredDefaultDescription
Deal IDnumberYes—The ID of the deal.
Deal NotestringYes—The content of the deal note.

Deal: Delete

ParameterTypeRequiredDefaultDescription
Deal IDnumberYes0The ID of the deal to delete.

Deal: Get

ParameterTypeRequiredDefaultDescription
Deal IDnumberYes0The ID of the deal to get.

Deal: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo100Max number of results to return. (shown when Return All is false)
SimplifybooleanNotrueWhether to return a simplified version of the response.

Deal: Update

ParameterTypeRequiredDefaultDescription
Deal IDnumberYes0ID of the deal to update.
Update FieldscollectionNo{}The fields to update.
— TitlestringNo—The title of the deal.
— Deal’s Contact IDnumberNo0The ID of the deal’s contact.
— Deal ValuenumberNo0The value of the deal in cents.
— CurrencystringNousdThe currency of the deal in 3-character ISO format.
— DescriptionstringNo—The description of the deal.
— Deal Pipeline IDstringNo—The pipeline ID of the deal.
— Deal Stage IDstringNo—The stage ID of the deal.
— Deal Owner IDstringNo—The owner ID of the deal.
— Deal PercentagenumberNo0The percentage of the deal.
— Deal StatusnumberNo0The status of the deal.

Deal: Update Deal Note

ParameterTypeRequiredDefaultDescription
Deal IDnumberYes—The ID of the deal.
Deal Note IDnumberYes—The ID of the deal note.
Deal NotestringNo—The content of the deal note.

E-Commerce Customer: Create

ParameterTypeRequiredDefaultDescription
Service IDstringYes—The ID of the connection object for the service where the customer originates.
Customer ID (externalid)stringYes—The ID of the customer in the external service.
Customer EmailstringYes—The email address of the customer.
Additional FieldscollectionNo{}
Options: 1, cdate, ASC
— Accepts MarketingbooleanNofalseWhether customer has opted in to marketing communications.

E-Commerce Customer: Delete

ParameterTypeRequiredDefaultDescription
Customer ID (ecommerceCustomerId)numberYes0ID of the E-commerce customer to delete.

E-Commerce Customer: Get

ParameterTypeRequiredDefaultDescription
Customer ID (ecommerceCustomerId)numberYes0ID of the E-commerce customer to get.

E-Commerce Customer: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo100Max number of results to return. (shown when Return All is false)
SimplifybooleanNotrueWhether to return a simplified version of the response.

E-Commerce Customer: Update

ParameterTypeRequiredDefaultDescription
Customer ID (ecommerceCustomerId)numberYes0ID of the E-commerce customer to update.
Update FieldscollectionNo{}The fields to update.
— Service IDstringNo—The ID of the connection object.
— Customer IDstringNo—The ID of the customer in the external service.
— Customer EmailstringNo—The email address of the customer.
— Accepts MarketingbooleanNofalseWhether customer has opted in to marketing communications.

E-Commerce Order: Create

ParameterTypeRequiredDefaultDescription
External IDstringNo—The ID of the order in the external service. ONLY REQUIRED IF EXTERNALCHECKOUTID NOT INCLUDED.
External Checkout IDstringNo—The ID of the cart in the external service. ONLY REQUIRED IF EXTERNALID IS NOT INCLUDED.
Order SourcenumberYes0The order source code (0 - will not trigger automations, 1 - will trigger automations).
Customer EmailstringYes—The email address of the customer who placed the order.
Total PricenumberYes0The total price of the order in cents, including tax and shipping charges (e.g. $456.78 => 45678).
Order CurrencystringYesusdThe currency of the order (3-digit ISO code, e.g. “USD”).
Connection ID (connectionid)numberYes0The ID of the connection from which this order originated.
Customer ID (customerid)numberYes0The ID of the customer associated with this order.
Creation DatestringYes—The date the order was placed (ISO 8601 format).
Abandoning DatestringNo—The date the cart was abandoned. REQUIRED ONLY IF INCLUDING EXTERNALCHECKOUTID.
ProductsjsonNo[]JSON array of ordered products. Each product: { name, price, quantity, externalid, category, sku, description, imageUrl, productUrl }.
Additional FieldscollectionNo{}
Options: 1, cdate, ASC
— Shipping AmountnumberNo0The total shipping amount for the order in cents.
— Tax AmountnumberNo0The total tax amount for the order in cents.
— Discount AmountnumberNo0The total discount amount for the order in cents.
— Order URLstringNo—The URL for the order in the external service.
— External Updated DatestringNo—The date the order was updated.
— Shipping MethodstringNo—The shipping method of the order.
— Order NumberstringNo—The order number.

E-Commerce Order: Delete

ParameterTypeRequiredDefaultDescription
Order IDnumberNo0The ID of the e-commerce order.

E-Commerce Order: Get

ParameterTypeRequiredDefaultDescription
Order IDnumberNo0The ID of the e-commerce order.

E-Commerce Order: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo100Max number of results to return. (shown when Return All is false)
SimplifybooleanNotrueWhether to return a simplified version of the response.

E-Commerce Order: Update

ParameterTypeRequiredDefaultDescription
Order IDnumberNo0The ID of the e-commerce order.
Update FieldscollectionNo{}The fields to update.
— External IDstringNo—The ID of the order in the external service.
— External Checkout IDstringNo—The ID of the cart in the external service.
— Order SourcenumberNo0The order source code.
— Customer EmailstringNo—The email address of the customer.
— Total PricenumberNo0The total price of the order in cents.
— Order CurrencystringNousdThe currency of the order (3-digit ISO code).
— Connection IDnumberNo0The ID of the connection.
— Customer IDnumberNo0The ID of the customer.
— Creation DatestringNo—The date the order was placed.
— Abandoning DatestringNo—The date the cart was abandoned.
— Shipping AmountnumberNo0The total shipping amount in cents.
— Tax AmountnumberNo0The total tax amount in cents.
— Discount AmountnumberNo0The total discount amount in cents.
— Order URLstringNo—The URL for the order.
— External Updated DatestringNo—The date the order was updated.
— Shipping MethodstringNo—The shipping method of the order.
— Order NumberstringNo—The order number.
— ProductsjsonNo[]JSON array of ordered products.

E-Commerce Order Product: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo100Max number of results to return. (shown when Return All is false)
SimplifybooleanNotrueWhether to return a simplified version of the response.

E-Commerce Order Product: Get by Product ID

ParameterTypeRequiredDefaultDescription
Product IDnumberNo0The ID of the product you’d like returned.

E-Commerce Order Product: Get by Order ID

ParameterTypeRequiredDefaultDescription
Order IDnumberNo0The ID of the order whose products you’d like returned.

List: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo100Max number of results to return. (shown when Return All is false)
SimplifybooleanNotrueWhether to return a simplified version of the response.

Tag: Create

ParameterTypeRequiredDefaultDescription
TypeoptionsYescontactTag-type of the new tag.
Options: contact, template
NamestringYes—Name of the new tag.
Additional FieldscollectionNo{}
Options: 1, cdate, ASC
— DescriptionstringNo—Description of the new tag.

Tag: Delete

ParameterTypeRequiredDefaultDescription
Tag IDnumberYes0ID of the tag to delete.

Tag: Get

ParameterTypeRequiredDefaultDescription
Tag IDnumberYes0ID of the tag to get.

Tag: Get Many

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo100Max number of results to return. (shown when Return All is false)
SimplifybooleanNotrueWhether to return a simplified version of the response.

Tag: Update

ParameterTypeRequiredDefaultDescription
Tag IDnumberYes0ID of the tag to update.
Update FieldscollectionNo{}The fields to update.
— TagstringNo—Name of the tag.
— DescriptionstringNo—Description of the tag being updated.

All Operations

ParameterTypeRequiredDefaultDescription
Max ConcurrencynumberNo10Maximum number of items to process concurrently.

Output Data

The ActiveCampaign response is merged onto the incoming item JSON — the node returns { ...inputItem, ...result }, so upstream fields survive unless the API returns a field with the same name. Binary data on the input item is forwarded unchanged.

Every operation except Get Many produces one output item per input item. The Get Many (getAll) operations on Account, Connection, Contact, Deal, E-Commerce Customer, E-Commerce Order, E-Commerce Order Product, List and Tag fan out — one output item per record returned — whenever Return All is on or Simplify is on. With both off, a Get Many produces a single item carrying the raw response envelope instead.

What lands on the item depends on the operation:

OperationMerged result
Contact, Account, Account Contact and Tag create / update; Contact Tag add; Contact List add / removeThe created or updated record’s own fields, unwrapped from the response envelope.
Any resource’s get; Deal, Connection, E-Commerce Customer and E-Commerce Order create / update; Deal createNote / updateNote; E-Commerce Order Product getByProductId / getByOrderIdThe raw response envelope, with the record nested under its own key (for example deal, connection, note).
Any delete; Contact Tag removesuccess: true when ActiveCampaign returns an empty body, otherwise the parsed response. Contact List add also falls back to success: true when the API returns nothing.
Get Many with Simplify on, or Return All onOne item per record, carrying that record’s own fields.
Get Many with Simplify off and Return All offA single item carrying the raw envelope — the record array under its resource key, plus the pagination metadata ActiveCampaign returns.

A contact created from an item that already carried an orderRef field comes out looking like this:

{
  "orderRef": "A-1001",
  "email": "john.doe@example.com",
  "firstName": "John",
  "lastName": "Doe",
  "phone": "+1234567890"
}

Here orderRef came from the input item and the rest is the ActiveCampaign record. The record also carries the identifiers, timestamps and relationship links ActiveCampaign assigns — reference them downstream by whatever names the API returns, for example {{ $json.id }}.

Example Configuration

Create a contact from an incoming item, updating it instead of failing when the address already exists:

{
  "type": "active_campaign",
  "parameters": {
    "resource": "contact",
    "operation": "create",
    "email": "{{ $json.email }}",
    "updateIfExists": true,
    "additionalFields": {
      "firstName": "{{ $json.firstName }}",
      "lastName": "{{ $json.lastName }}",
      "phone": "{{ $json.phone }}",
      "fieldValues": {
        "property": [
          { "field": "1", "value": "{{ $json.plan }}" }
        ]
      }
    }
  }
}

Page through every active contact created since a given date, oldest email first, emitting one item per contact:

{
  "type": "active_campaign",
  "parameters": {
    "resource": "contact",
    "operation": "getAll",
    "returnAll": true,
    "simple": true,
    "additionalFields": {
      "status": 1,
      "filters[created_after]": "{{ $json.since }}",
      "orderBy": "email",
      "orderDirection": "ASC"
    }
  }
}

Apply a tag to a contact:

{
  "type": "active_campaign",
  "parameters": {
    "resource": "contactTag",
    "operation": "add",
    "tagId": "{{ $json.tagId }}",
    "contactId": "{{ $json.contactId }}"
  }
}

Open a deal against an existing contact, with the value in cents:

{
  "type": "active_campaign",
  "parameters": {
    "resource": "deal",
    "operation": "create",
    "title": "{{ $json.company }} renewal",
    "contact": "{{ $json.contactId }}",
    "value": 50000,
    "currency": "usd",
    "group": "1",
    "stage": "2",
    "additionalFields": {
      "description": "Opened automatically from {{ $json.source }}",
      "percent": 25
    }
  }
}

Record an e-commerce order with its line items, triggering ActiveCampaign automations:

{
  "type": "active_campaign",
  "parameters": {
    "resource": "ecommerceOrder",
    "operation": "create",
    "externalid": "{{ $json.orderId }}",
    "source": 1,
    "email": "{{ $json.customerEmail }}",
    "totalPrice": 9999,
    "currency": "USD",
    "connectionid": 1,
    "customerid": "{{ $json.acCustomerId }}",
    "externalCreatedDate": "{{ $json.placedAt }}",
    "orderProducts": [
      {
        "name": "{{ $json.productName }}",
        "price": 9999,
        "quantity": 1,
        "externalid": "{{ $json.sku }}",
        "category": "Electronics"
      }
    ],
    "additionalFields": {
      "shippingAmount": 500,
      "taxAmount": 800,
      "orderNumber": "{{ $json.orderNumber }}"
    }
  }
}

Update an account’s name, website and one custom field:

{
  "type": "active_campaign",
  "parameters": {
    "resource": "account",
    "operation": "update",
    "accountId": "{{ $json.accountId }}",
    "updateFields": {
      "name": "{{ $json.companyName }}",
      "accountUrl": "{{ $json.website }}",
      "fields": {
        "property": [
          { "customFieldId": "2", "fieldValue": "{{ $json.segment }}" }
        ]
      }
    }
  }
}

Error Handling

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

ActiveCampaign manages contacts, accounts, deals, tags, lists, connections and e-commerce customers, orders and order products. It is the right tool when a workflow must create, update, delete or look up contacts, accounts, deals, tags, connections and e-commerce customers or orders, manage list and tag membership, or read lists and order products in an ActiveCampaign account, rather than run its email campaigns. It returns the affected or fetched records as JSON items, with the list operations paged through getAll.

Behavior notes

  • Return All ignores Limit. With Return All on, the node pages through the whole collection 100 records at a time until ActiveCampaign reports no more. With it off, Limit is capped at 100 — the largest page the API returns — so a Limit of 500 still yields 100.
  • Simplify only applies to Get Many. On (the default) the node unwraps the response and emits one item per record. Off, it emits a single item holding the raw envelope and its pagination metadata. Return All always emits one item per record regardless of Simplify.
  • Money is in cents. Deal Value, Total Price, Shipping Amount, Tax Amount and Discount Amount are whole cents — $456.78 is 45678.
  • Update if Exists changes what Create does. On contact Create, turning it on syncs the contact by email address instead of erroring when that address is already in your account, which makes the node safe to re-run.
  • Contact List → Remove unsubscribes. ActiveCampaign has no endpoint for deleting a list membership, so Remove writes the membership back with an unsubscribed status rather than deleting the record.
  • Contact Tag → Remove takes the link ID. Add takes a Tag ID plus a Contact ID and creates a contact-tag link; Remove takes the Contact Tag ID of that link, not the tag’s own ID. Keep the ID that Add returns if you plan to undo it later.
  • Custom fields are keyed differently per resource. Contact custom fields are field / value pairs; account custom fields are customFieldId / fieldValue pairs. Copy the exact names when you build the collection by hand.
  • Order Direction needs Order By. On contact Get Many, the sort is only applied when Order By is set; setting Order Direction on its own has no effect.
  • IDs come from ActiveCampaign. Pipeline, stage, owner, list, tag and custom-field IDs are ActiveCampaign’s own IDs. Read them first — with this node’s Get Many operations, or via GET /api/3/tags and GET /api/3/fields?limit=100 — rather than guessing them.
  • Chain the CRM steps. A typical pipeline creates the contact, then feeds the returned contact ID into Contact List → Add, Contact Tag → Add and Deal → Create. Set Max Concurrency lower than the default if a large batch starts hitting ActiveCampaign’s rate limits.

Frequently asked questions

What credentials do I need to connect to ActiveCampaign?

You need an ActiveCampaign API credential (type: activeCampaignApi), which requires your ActiveCampaign account URL and API key. You can find both in your ActiveCampaign account under Settings → Developer. Once saved in BusyBot, all ActiveCampaign nodes in your workspace can share the same credential.

I set a Limit of 500 on a Get Many operation but only got 100 records back — what happened?

The ActiveCampaign API returns a maximum of 100 records per page, so a Limit above 100 is silently capped at 100. If you need more than 100 records, turn on Return All instead — the node will page through the full collection 100 records at a time until ActiveCampaign reports no more results. Note that when Return All is on, the Limit setting is ignored entirely.

What does 'Simplify' do, and when should I turn it off?

Simplify (on by default) unwraps the API response envelope and emits one item per record, which is what most workflows need. Turn it off if you need the raw response including pagination metadata — for example, to inspect total record counts. Simplify only affects Get Many operations; Return All always emits one item per record regardless of this setting.

How do I remove a tag from a contact, and why do I need a different ID than the one I used to add it?

When you add a tag to a contact, ActiveCampaign creates a contact-tag link and returns a Contact Tag ID for that specific link — this is distinct from the tag's own ID. To remove the tag later, you must provide that Contact Tag ID, not the original tag ID. The safest pattern is to store the ID returned by the Add operation in an earlier step and pass it forward to the Remove operation.

How should I enter monetary values like deal amounts or order totals?

All money fields — Deal Value, Total Price, Shipping Amount, Tax Amount, and Discount Amount — are expressed in whole cents, not dollars. For example, $456.78 should be entered as 45678. Entering a decimal like 456.78 will be interpreted as less than one dollar.

What happens if I try to create a contact that already exists in ActiveCampaign?

By default, creating a contact with an email address that already exists in your account will result in an error. Turn on the 'Update if Exists' option on the Create operation to sync the contact by email address instead — this upserts the record rather than failing, making the node safe to re-run in automated workflows where the same contact may appear more than once.

Build with ActiveCampaign

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need ActiveCampaign API credentials first.

Open BusyBot

Last reviewed . Spotted something wrong? Tell us.