Reference · Tools

ActiveCampaign

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.

Node type
Action
Parameters
128
Outputs
Output, Error
Credentials
ActiveCampaign API

ActiveCampaign

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

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.

Category: Marketing
Tool Name: active_campaign
Version: 1

Appearance: Icon: lucide-Megaphone | Color: #356ae6

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
NamestringYesAccount’s name.
Additional FieldscollectionNo{}Optional account fields to set.
— Account URLstringNoAccount’s website.
— FieldsfixedCollectionNo{}Account custom fields. Field ID can be found via GET /api/3/accountCustomFieldMeta.
— — Field ID (customFieldId)stringNoID of the custom field.
— — Field Value (fieldValue)stringNoValue 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{}Narrows which accounts are returned.
— SearchstringNoSearch by name.

Account: Update

ParameterTypeRequiredDefaultDescription
Account ID (accountId)numberYes0ID of the account to update.
Update FieldscollectionNo{}The fields to update.
— NamestringNoAccount’s name.
— Account URLstringNoAccount’s website.
— FieldsfixedCollectionNo{}Account custom fields.
— — Field ID (customFieldId)stringNoID of the custom field.
— — Field Value (fieldValue)stringNoValue of the field to set.

Account Contact: Create

ParameterTypeRequiredDefaultDescription
Account ID (account)numberYes0The account ID.
Contact ID (contact)numberYes0The contact ID.
Additional FieldscollectionNo{}Optional fields to set on the link.
— Job TitlestringNoJob 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 IDnumberYesID of the account contact to update.
Update FieldscollectionNo{}The fields to update.
— Job TitlestringNoJob title of the contact at the account.

Connection: Create

ParameterTypeRequiredDefaultDescription
ServicestringYesThe name of the service.
External Account IDstringYesThe ID of the account in the external service.
Account NamestringYesThe name associated with the account in the external service.
Logo URLstringYesThe URL to a logo image for the external service.
Link URLstringYesThe 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.
— ServicestringNoThe name of the service.
— External Account IDstringNoThe ID of the account in the external service.
— Account NamestringNoThe name associated with the account.
— Logo URLstringNoThe URL to a logo image.
— Link URLstringNoThe 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
EmailstringYesThe email of the contact to create.
Update if ExistsbooleanNofalseWhether to update the contact if it exists already. If not set and the contact exists it will error instead.
Additional FieldscollectionNo{}Optional contact fields to set.
— Custom FieldsfixedCollectionNo{}Adds custom fields. Field ID can be found via GET /api/3/fields.
— — Field ID (field)stringNoID of the custom field. Find via GET /api/3/fields?limit=100.
— — Field Value (value)stringNoValue of the field to set.
— First NamestringNoThe first name of the contact.
— Last NamestringNoThe last name of the contact.
— PhonestringNoPhone 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{}Filters and sorting to apply to the query.
— DatetimestringNoContacts created on the specified date.
— EmailstringNoEmail address of the contact you want to get.
— Email LikestringNoFilter contacts that contain the given value in the email address.
— ExcludestringNoExclude from the response the contact with the given ID.
— Form IDstringNoFilter contacts associated with the given form.
— List ID (listid)stringNoFilter contacts associated with the given list.
— SearchstringNoFilter contacts that match the given value in contact names, organization, phone or email.
— Segment IDstringNoReturn only contacts that match a list segment.
— Series IDstringNoFilter contacts associated with the given automation.
— StatusoptionsNoRestrict the result to contacts in one subscription state.
Options: 1 (Active), -1 (Any), 3 (Bounced), 0 (Unconfirmed), 2 (Unsubscribed)
— Tag ID (tagid)stringNoFilter contacts associated with the given tag.
— Created BeforestringNoFilter contacts that were created prior to this date.
— Created AfterstringNoFilter contacts that were created after this date.
— Updated BeforestringNoFilter contacts that were updated before this date.
— Updated AfterstringNoFilter contacts that were updated after this date.
— Wait IDstringNoFilter by contacts in the wait queue of an automation block.
— Order ByoptionsNoField the results are sorted on.
Options: cdate (Creation Date), email, first_name, last_name, name, score
— Order DirectionoptionsNoDESCSort direction, applied to the Order By field.
Options: ASC (Ascending), DESC (Descending)

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 ID (field)stringNoID of the custom field.
— — Field Value (value)stringNoValue of the field to set.
— EmailstringNoEmail of the contact.
— First NamestringNoFirst name of the contact.
— Last NamestringNoLast name of the contact.
— PhonestringNoPhone number of the contact.

Contact List: Add

ParameterTypeRequiredDefaultDescription
List ID (listId)numberYesThe list ID.
Contact ID (contactId)numberYesThe contact ID.

Contact List: Remove

ParameterTypeRequiredDefaultDescription
List ID (listId)numberYesThe list ID.
Contact ID (contactId)numberYesThe contact ID.

Contact Tag: Add

ParameterTypeRequiredDefaultDescription
Tag ID (tagId)stringYesThe tag ID. Find via GET /api/3/tags or the Tag resource in this tool.
Contact ID (contactId)numberYesThe contact ID.

Contact Tag: Remove

ParameterTypeRequiredDefaultDescription
Contact Tag IDnumberYes0ID of the contact tag to delete. This is the ID of the contact-tag link, not the tag’s own ID.

Deal: Create

ParameterTypeRequiredDefaultDescription
TitlestringYesThe 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 IDstringNoThe pipeline ID of the deal.
Deal Stage IDstringNoThe stage ID of the deal.
Deal Owner IDstringNoThe owner ID of the deal.
Additional FieldscollectionNo{}Optional deal fields to set.
— DescriptionstringNoThe description of the deal.
— Deal PercentagenumberNo0The percentage of the deal.
— Deal StatusnumberNo0The status of the deal.

Deal: Create Note

ParameterTypeRequiredDefaultDescription
Deal IDnumberYesThe ID of the deal.
Deal NotestringYesThe 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.
— TitlestringNoThe 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.
— DescriptionstringNoThe description of the deal.
— Deal Pipeline IDstringNoThe pipeline ID of the deal.
— Deal Stage IDstringNoThe stage ID of the deal.
— Deal Owner IDstringNoThe owner ID of the deal.
— Deal PercentagenumberNo0The percentage of the deal.
— Deal StatusnumberNo0The status of the deal.

Deal: Update Deal Note

ParameterTypeRequiredDefaultDescription
Deal IDnumberYesThe ID of the deal.
Deal Note IDnumberYesThe ID of the deal note.
Deal NotestringNoThe content of the deal note.

E-Commerce Customer: Create

ParameterTypeRequiredDefaultDescription
Service IDstringYesThe ID of the connection object for the service where the customer originates.
Customer ID (externalid)stringYesThe ID of the customer in the external service.
Customer EmailstringYesThe email address of the customer.
Additional FieldscollectionNo{}Optional customer fields to set.
— Accepts MarketingbooleanNofalseWhether the 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 IDstringNoThe ID of the connection object.
— Customer ID (externalid)stringNoThe ID of the customer in the external service.
— Customer EmailstringNoThe email address of the customer.
— Accepts MarketingbooleanNofalseWhether the customer has opted in to marketing communications.

E-Commerce Order: Create

ParameterTypeRequiredDefaultDescription
External IDstringNoThe ID of the order in the external service. Required only if External Checkout ID is not included.
External Checkout IDstringNoThe ID of the cart in the external service. Required only if External ID is not included.
Order SourcenumberYes0The order source code (0 - will not trigger automations, 1 - will trigger automations).
Customer EmailstringYesThe 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 Date (externalCreatedDate)stringYesThe date the order was placed (ISO 8601 format).
Abandoning DatestringNoThe date the cart was abandoned. Required only if you include External Checkout ID.
ProductsjsonNo[]JSON array of ordered products. Each product: { name, price, quantity, externalid, category, sku, description, imageUrl, productUrl }.
Additional FieldscollectionNo{}Optional order fields to set.
— 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 URLstringNoThe URL for the order in the external service.
— External Updated DatestringNoThe date the order was updated.
— Shipping MethodstringNoThe shipping method of the order.
— Order NumberstringNoThe 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 IDstringNoThe ID of the order in the external service.
— External Checkout IDstringNoThe ID of the cart in the external service.
— Order SourcenumberNo0The order source code.
— Customer EmailstringNoThe 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 ID (connectionid)numberNo0The ID of the connection.
— Customer ID (customerid)numberNo0The ID of the customer.
— Creation Date (externalupdatedDate)stringNoThe date the order was placed.
— Abandoning DatestringNoThe 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 URLstringNoThe URL for the order.
— External Updated DatestringNoThe date the order was updated.
— Shipping MethodstringNoThe shipping method of the order.
— Order NumberstringNoThe 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 (a tag you apply to contacts), template (a tag you apply to templates)
NamestringYesName of the new tag.
Additional FieldscollectionNo{}Optional tag fields to set.
— DescriptionstringNoDescription of the new tag.

Tag: Delete

ParameterTypeRequiredDefaultDescription
Tag ID (tagId)numberYes0ID of the tag to delete.

Tag: Get

ParameterTypeRequiredDefaultDescription
Tag ID (tagId)numberYes0ID 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 ID (tagId)numberYes0ID of the tag to update.
Update FieldscollectionNo{}The fields to update.
— TagstringNoName of the tag.
— DescriptionstringNoDescription 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 }}.

Usage Examples

  • 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

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

Manage contacts, accounts, deals, tags, lists, and e-commerce data in ActiveCampaign CRM and marketing automation platform.

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 the ActiveCampaign node

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 updated . Spotted something wrong? Tell us.