ActiveCampaign

1. Overview

ActiveCampaign is a comprehensive platform that integrates customer experience automation, email marketing, marketing automation, sales automation, and CRM functionality. It is designed to help businesses of all sizes build meaningful connections with customers and automate marketing and sales processes.

Through GoInsight's Activecampaign node, you can seamlessly integrate powerful customer relationship management and marketing automation capabilities into your workflows. You can manage the full lifecycle of core resources in ActiveCampaign, including:

  • Contact and Account Management: Create, update, delete, and retrieve Contact and Account information, and associate contacts with accounts.
  • Sales Process Automation: Manage various aspects of the sales process, including creating and updating Deals, Pipelines, and Stages.
  • Marketing Automation: Perform granular management of contacts, such as adding or removing Tags, and adding contacts to different marketing Lists.
  • Ecommerce Integration: Manage ecommerce-related customer and order data to unify marketing and sales data.

2. Prerequisites

Before using this node, you need to meet the following conditions:

  • Have a valid Activecampaign account.
  • Obtain the API URL and API Key from your ActiveCampaign account for authentication. You may need administrator permissions to access these credentials.

3. Credentials

For detailed guidance on how to obtain and configure credentials, please refer to our official documentation: Credentials Configuration Guide.

4. Supported Operations

Summary

This node primarily operates on the following resources: Account, Account Contact, Connection, Contact, Contact List, Contact Tag, Deal, Deal Note, Ecommerce Customer, Ecommerce Order, Ecommerce Order Product, List, Pipeline, Stage, and Tag.

Resource Operation Description
Account Create an Account Creates an account representing a company or organization.
Account Delete an Account Permanently deletes an account (company/organization) from ActiveCampaign by its unique identifier. This operation cannot be undone.
Account Get Many Accounts Retrieves a paginated list of accounts (companies) with optional search.
Account Get an Account Retrieves details of a specific account (company) by ID.
Account Update an Account Updates an existing account's company information.
Account Contact Create an Account Contact Links a contact (person) to an account (company) with their job title.
Account Contact Delete an Account Contact Permanently removes the association between an account and a contact in ActiveCampaign. This operation cannot be undone.
Account Contact Get Many Account Contacts Retrieves a list of account-contact associations with pagination.
Account Contact Get an Account Contact Retrieves a specific account-contact association by ID.
Account Contact Update an Account Contact Updates an existing account-contact association's job title or reassigns to different account.
Connection Create a Connection Creates a connection to link your e-commerce platform (Shopify, WooCommerce, etc.) with ActiveCampaign for syncing customer data and orders.
Connection Delete a Connection Permanently deletes a connection (external service integration) from ActiveCampaign by its unique identifier. This operation cannot be undone.
Connection Get Many Connections Retrieves a list of e-commerce connections with filtering and pagination.
Connection Get a Connection Retrieves one specific connection from ActiveCampaign by ConnectionId.
Connection Update a Connection Updates an existing e-commerce connection with new information.
Contact Create a Contact Creates a contact in ActiveCampaign with email, name, phone, and custom fields.
Contact Delete a Contact Permanently deletes a contact from ActiveCampaign by their unique identifier. This operation cannot be undone.
Contact Get Many Contacts Retrieves a paginated list of contacts with filtering and sorting.
Contact Get a Contact Retrieves detailed information for a specific contact by ID.
Contact Update a Contact Updates an existing contact's information.
Contact List Add a Contact to a List Subscribe a contact to an ActiveCampaign mailing list to enable email communications and campaign targeting.
Contact List Remove a Contact from a List Remove a contact from an ActiveCampaign list to unsubscribe them or update list memberships.
Contact Tag Add a Contact Tag Add a tag to a contact in ActiveCampaign for categorization, segmentation, and automation triggering.
Contact Tag Remove a Contact Tag Remove a tag from a contact in ActiveCampaign to update categorization or clean up obsolete labels.
Deal Create a Deal Creates a deal to track sales opportunities through pipeline stages.
Deal Delete a Deal Permanently deletes a deal from ActiveCampaign by its unique identifier. This operation cannot be undone.
Deal Get Many Deals Retrieves a paginated list of deals with search and sorting.
Deal Get a Deal Retrieves complete information for a specific deal by ID.
Deal Update a Deal Updates an existing deal's information using merge-before-put strategy.
Deal Note Create a Deal Note Creates a note for a deal to record follow-up information, meeting notes, or reminders.
Deal Note Update a Deal Note Updates the text content of an existing deal note.
Ecommerce Customer Create an Ecommerce Customer Creates an e-commerce customer to track purchases and revenue.
Ecommerce Customer Delete an Ecommerce Customer Permanently deletes an ecommerce customer record from ActiveCampaign by its unique identifier. This operation cannot be undone.
Ecommerce Customer Get Ecommerce Customers Retrieves a paginated list of e-commerce customers with filtering.
Ecommerce Customer Get an Ecommerce Customer Retrieves a single e-commerce customer from ActiveCampaign by ID or email.
Ecommerce Customer Update an Ecommerce Customer Updates an e-commerce customer's information in ActiveCampaign.
Ecommerce Order Create an Ecommerce Order Creates an e-commerce order to track purchases and trigger automations.
Ecommerce Order Delete an Ecommerce Order Permanently deletes an ecommerce order record from ActiveCampaign by its unique identifier. This operation cannot be undone.
Ecommerce Order Get Ecommerce Orders Retrieves a paginated list of e-commerce orders with filtering.
Ecommerce Order Get an Ecommerce Order Retrieves a specific e-commerce order by ID.
Ecommerce Order Update an Ecommerce Order Updates an e-commerce order's information.
Ecommerce Order Product Get Ecommerce Order Product by ProductId Retrieves a specific order product (line item) by ID.
Ecommerce Order Product Get Ecommerce Order Products Retrieves a paginated list of all order products (line items).
Ecommerce Order Product Get Ecommerce Order Products by OrderId Retrieves all products (line items) for a specific order.
List Create a List Creates a contact list for organizing email or SMS marketing campaigns.
List Delete a List Permanently deletes a contact list from ActiveCampaign by its unique identifier. This operation cannot be undone.
List Get Many Lists Retrieves a paginated list of contact lists with filtering.
List Get a List Retrieves details of a specific contact list by ID.
Pipeline Create a Pipeline Creates a pipeline (deal group) for organizing deals through sales stages.
Pipeline Delete a Pipeline Permanently deletes a deal pipeline from ActiveCampaign by its unique identifier. This operation cannot be undone.
Pipeline Get Many Pipelines Retrieves a list of sales pipelines with filtering and sorting.
Pipeline Get a Pipeline Retrieves a sales pipeline with its stages by ID.
Pipeline Update a Pipeline Updates an existing pipeline's configuration.
Stage Create a Stage Creates a stage (step) in a pipeline to represent sales process phases.
Stage Delete a Stage Permanently deletes a pipeline stage from ActiveCampaign by its unique identifier. This operation cannot be undone.
Stage Get Many Stages Retrieves a paginated list of deal stages with filtering.
Stage Get a Stage Retrieves details of a specific deal stage by ID.
Stage Update a Stage Updates an existing stage's properties within a pipeline.
Tag Create a Tag Creates a tag for organizing and categorizing contacts or email templates.
Tag Delete a Tag Permanently deletes a tag from ActiveCampaign by its unique identifier. This operation cannot be undone.
Tag Get Many Tags Retrieves a paginated list of tags with search and sorting.
Tag Get a Tag Retrieves details of a specific tag by ID.
Tag Update a Tag Updates an existing tag's name, type, or description.

Operation Details

Create an Account

Creates an account representing a company or organization.

When to use:

  • Tracking B2B customer companies
  • Organizing contacts by their company
  • Building account-based marketing workflows

Duplicate Protection:

  • Enable 'CheckDuplicate' parameter to prevent creating duplicate accounts
  • When enabled, searches for existing accounts with the same Name
  • Returns existing account if found, otherwise creates new one

Key points:

  • Owner defaults to user ID 1 (usually the first user created)
  • AccountUrl is optional but recommended for linking
  • Use AdditionalFields for custom fields

Next: Create an Account Contact, Update an Account, Get Many Accounts

Input Parameters:

  • Name: Account name. This is the primary identifier for the account, typically a company or organization name. Example: "Acme Corporation"

Options:

  • AccountUrl: Company website URL. Must be a valid URL format. This helps identify and link to the company's online presence. Example: "https://www.acme.com"
  • Owner: User ID of the account owner in ActiveCampaign. This determines who manages this account.

Default value (1): Usually represents the first user created in your ActiveCampaign account. If you want to assign ownership to a specific user, obtain their User ID by:

  1. Call the 'Get Many Users' action (ActiveCampaign > Users > Get Many Users)
  2. Find the target user in the returned list
  3. Use the id field from that user object

When to change:

  • Assigning accounts to specific sales reps
  • Implementing account-based ownership rules
  • Team-based account management

When to keep default:

  • Quick testing or prototyping
  • Centralized account management
  • Single-user ActiveCampaign accounts

Example: 5 (for user ID 5)

  • Fields: Account's custom field values. If provided, must be a list of dictionaries.

Each dictionary should have the following keys:

customFieldId (int): Field ID, ID of the Custom Field Meta Data.

fieldValue (str): Updated field value. For currency field, this needs to be in cents not dollars (or 100 x Base Unit). e.g., 500 - 1000

fieldCurrency (str, optional): Required only for the currency field type. The three letter currency code for the currency value. e.g., 'USD'.

Example:

[
    {
    "customFieldId": 9,
    "fieldValue": "500-1000"
    },
    {
    "customFieldId": 20,
    "fieldValue": 1234,
    "fieldCurrency": "GBP"
    }
]

  • CheckDuplicate: Whether to check for duplicate accounts before creating. When enabled (default), if an account with the same Name already exists, the existing account will be returned instead of creating a new one.

Recommended: Keep enabled (default) to prevent duplicate accounts.

When to disable:

  • You intentionally want to allow duplicate names (rare)
  • You have external deduplication logic

Example: true

Output:

  • Account (object): An account object containing the created account details.
  • id (str): The ID of the account.
  • name (str): The name of the account.
  • accountUrl (str): The URL of the account's website.
  • fields (list): List of custom field values. Each item is a dictionary with keys:

customFieldId (int): Field ID, ID of the Custom Field Meta Data.

fieldValue (str): Updated field value. For currency field, this needs to be in cents not dollars (or 100 x Base Unit). e.g., 500 - 1000

accountId (str): Field ID, ID of the Custom Field Meta Data.

fieldCurrency (str, optional): Required only for the currency field type. The three letter currency code for the currency value. e.g., 'USD'.

  • links (list): List of links associated with the account.
  • owner (int): The ID of the account owner.
  • createdTimestamp (str): The timestamp when the account was created.
  • updatedTimestamp (str): The timestamp when the account was last updated.
  • OriginalStatusCode (number): The original HTTP status code returned by the upstream ActiveCampaign API. Default 0 means the request did not reach upstream (e.g., timeout, parameter validation error). Use for debugging.
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Error message description, returns empty string on success. Contains user-friendly error messages for common issues (401: API key invalid, 403: permission denied, 422: invalid data).

Delete an Account

Permanently deletes an account (company/organization) from ActiveCampaign by its unique identifier. This operation cannot be undone.

When to use:

  • Clean up duplicate company records
  • Remove test accounts
  • Handle company closures

Key points:

  • Deletion is permanent and irreversible
  • Associated contacts will NOT be deleted, only the account association
  • All account-specific custom fields, notes, and history will be lost
  • Deals and opportunities linked to this account may be affected

Input Parameters:

  • AccountId: The ID of the account to delete permanently (must be > 0).

How to obtain

Option 1:

  1. Call the 'activecampaign_get_many_accounts` interface.
  2. Find the target Accounts in the returned Accounts object.
  3. Copy the id field value of Accounts array index object.

or Option 2:

  1. Call the activecampaign_create_account interface.
  2. Copy the id field value of the created Account object.

Example: 12345

Output:

  • DeletedAccount (object): Business data object containing deletion result. Structure: {'deleted': bool, 'accountId': int}. Check 'deleted' field to determine success: true=successfully deleted, false=deletion failed. Returns empty object {} if deletion failed (check ErrorMessage for reason).
  • OriginalStatusCode (number): The original HTTP status code returned by the upstream ActiveCampaign API. Default 0 means the request did not reach upstream (e.g., timeout, parameter validation error). Use for debugging.
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Error message description, returns empty string on success. Contains user-friendly error messages for common issues (401: API key invalid, 404: resource not found, etc.).

Get Many Accounts

Retrieves a paginated list of accounts (companies) with optional search.

When to use:

  • List all B2B accounts
  • Search accounts by name
  • Export account data

Key points:

  • Supports fuzzy name search
  • Pagination: max 100 per request
  • Returns account IDs for other operations

Options:

  • Limit: Number of accounts to retrieve per request. Minimum: 1, Maximum: 100, Default: 100. Recommended: Use 20-50 for balanced performance. Use with Offset parameter for pagination. Example: 50
  • Offset: Starting position for pagination. Use with Limit to retrieve data in batches. Example: Offset=0 returns first 100 records, Offset=100 returns next 100 records. Default: 0
  • SearchName: Search query for account names (fuzzy match). Supports partial matching. Example: 'Acme' will match 'Acme Corporation', 'Acme Inc', etc. Leave empty to retrieve all accounts. Default: empty (no filter)

Output:

  • Accounts (object): Accounts data object containing query results.

Structure:

  • Accounts (array): List of account objects
  • Total (number): Total number of accounts matching the current search criteria

Core Fields in Accounts[]:

  • id (string): Unique account identifier
  • name (string): Account name, e.g. "Acme Corporation"
  • accountUrl (string): Account website URL
  • owner (string): Account owner user ID
  • createdTimestamp (string): Creation timestamp in ISO 8601 format
  • updatedTimestamp (string): Last update timestamp in ISO 8601 format
  • fields (object): Custom field values (key-value pairs)

Access Paths:

  • First account ID: Accounts.Accounts[0].id
  • Total count: Accounts.Total
  • Iterate accounts: for account in Accounts.Accounts

Returns {} on failure.

  • OriginalStatusCode (number): The original HTTP status code returned by the upstream ActiveCampaign API. Default 0 means the request did not reach upstream (e.g., timeout, parameter validation error). Use for debugging. - 0: Did not reach upstream API - 200: Upstream success - 4xx: Client error (400 Bad Request / 401 Unauthorized / 403 Forbidden / 404 Not Found / 429 Rate Limit) - 5xx: Upstream server error
  • StatusCode (number): Operation status code: - 200: Success. The upstream API request completed successfully. Check ErrorMessage for business-level errors. - -1: Parameter validation error. One or more input parameters are invalid or missing. - 500: System error. Network timeout, connection failure, or response parsing error. The operation may be retried.
  • ErrorMessage (string): Detailed error message if any error occurred. Empty string if the operation succeeded. - When StatusCode is 200 and ErrorMessage is empty: Operation fully succeeded. - When StatusCode is 200 and ErrorMessage is not empty: Upstream API returned a business error (e.g., invalid search query, permission denied, rate limit exceeded). - When StatusCode is -1: Describes which parameter is invalid and how to fix it. - When StatusCode is 500: Describes the system-level error (timeout, connection failure, etc.).

Get an Account

Retrieves details of a specific account (company) by ID.

When to use:

  • Get account details before updating
  • Verify account exists
  • Check account metadata

Key points:

  • Returns account with name and URL
  • Use AccountId from Get Many Accounts
  • Includes timestamps

Input Parameters:

  • AccountId: The ID of the account to retrieve. Must be a positive integer greater than zero.

How to obtain

Option 1:

  1. Call the 'activecampaign_get_many_accounts` interface.
  2. Find the target Accounts in the returned Accounts object.
  3. Copy the id field value of Accounts array index object.

or Option 2:

  1. Call the activecampaign_create_account interface.
  2. Copy the id field value of the created Account object.

Example: 12345

Output:

  • Account (object): Account details object containing the following core fields:
  • id (string): Account unique identifier
  • name (string): Account name
  • accountUrl (string): Account website URL
  • createdTimestamp (string): Creation time in ISO 8601 format
  • updatedTimestamp (string): Last update time in ISO 8601 format

Returns empty object {} on failure.

  • OriginalStatusCode (number): The original HTTP status code returned by the upstream ActiveCampaign API. Default 0 means the request did not reach upstream (e.g., timeout, parameter validation error). Use for debugging.
  • StatusCode (number): Operation status code: 200=Success (check ErrorMessage for business errors), -1=Parameter validation error, 500=System error (may retry).
  • ErrorMessage (string): Error message if retrieving the account failed. Empty string if succeeded.

Update an Account

Updates an existing account's company information.

When to use:

  • Updating company details after sales calls
  • Syncing account data from external CRM
  • Changing account ownership

Key points:

  • Partial update: Only provided fields are updated
  • AccountData is JSON object with fields to update
  • Can update name, accountUrl, fields, owner, etc.
  • Owner field expects user ID

Next: Get an Account, Create an Account Contact, Get Many Accounts

Input Parameters:

  • AccountId: The unique ID of the account to update. Must be a positive integer.

How to obtain

Option 1:

  1. Call the 'activecampaign_get_many_accounts` interface.
  2. Find the target Accounts in the returned Accounts object.
  3. Copy the id field value of Accounts array index object.

or Option 2:

  1. Call the activecampaign_create_account interface.
  2. Copy the id field value of the created Account object.

Example: 12345

Options:

  • Owner: The ID of the user who owns this account. Must be a valid user ID from your ActiveCampaign account. You can get user IDs from the Get Users action or ActiveCampaign admin panel. Example: 1
  • Name: Account name. Leave empty to keep existing value.
  • AccountUrl: The company's website URL (e.g., https://www.acme.com). This is typically the public-facing website of the account. Example: "https://www.example.com"
  • Fields: Account's custom field values. If provided, must be a list of dictionaries.

Each dictionary should have the following keys:

customFieldId (int): Field ID, ID of the Custom Field Meta Data.

fieldValue (str): Updated field value. For currency field, this needs to be in cents not dollars (or 100 x Base Unit). e.g., 500 - 1000

fieldCurrency (str, optional): Required only for the currency field type. The three letter currency code for the currency value. e.g., 'USD'.

Example:

[
    {
    "customFieldId": 9,
    "fieldValue": "500-1000"
    },
    {
    "customFieldId": 20,
    "fieldValue": 1234,
    "fieldCurrency": "GBP"
    }
]

Output:

  • Account (object): Updated account object containing the following core fields:
  • id (string): Account unique identifier
  • name (string): Account name
  • accountUrl (string): Company website URL
  • owner (string): Owner user ID
  • createdTimestamp (string): Creation time in ISO 8601 format
  • updatedTimestamp (string): Last update time in ISO 8601 format
  • OriginalStatusCode (number): The original HTTP status code returned by the upstream API. Default 0 means the request did not reach upstream (e.g., timeout). Use for debugging.
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Detailed error message if any error occurred. Empty string if the operation succeeded.

Create an Account Contact

Links a contact (person) to an account (company) with their job title.

When to use:

  • Associating contacts with their companies
  • Building B2B account hierarchies
  • Tracking contact roles within organizations

Key points:

  • Requires existing ContactId and AccountId
  • JobTitle describes role at this specific company
  • Returns 422 error if association already exists

Next: Update an Account Contact, Delete an Account Contact, Get Many Account Contacts

Input Parameters:

  • ContactId: The ID of the contact (person) to associate.

Option 1:

  1. Call the 'activecampaign_get_many_contacts` interface.
  2. Find the target Contacts in the returned Contacts object.
  3. Copy the id field value of Contacts array index object.

Option 2:

  1. Call the activecampaign_create_contact interface.
  2. Copy the id field value of the created Contact object.

Example: 28

  • AccountId: The ID of the account (company/organization) to associate with the contact.

How to obtain

Option 1:

  1. Call the 'activecampaign_get_many_accounts` interface.
  2. Find the target Accounts in the returned Accounts object.
  3. Copy the id field value of Accounts array index object.

Option 2:

  1. Call the activecampaign_create_account interface.
  2. Copy the id field value of the created Account object.

Example: 64

  • JobTitle: The job title or role of the contact at this specific account. This describes what position the contact holds within the associated company. Example: "Marketing Manager", "CEO", "Sales Director"

Output:

  • AccountContact (object): An account contact object containing the created account-contact relationship details.

Core fields (always present):

  • id (string): The association ID
  • contact (string): Contact ID
  • account (string): Account ID
  • jobTitle (string): Job title of the contact at this account
  • createdTimestamp (string): Creation date in ISO 8601 format
  • updatedTimestamp (string): Last updated date in ISO 8601 format

Example: {"id": "789", "contact": "123", "account": "456", "jobTitle": "Marketing Manager"}

  • OriginalStatusCode (number): The original HTTP status code returned by the upstream ActiveCampaign API. Default 0 means the request did not reach upstream (e.g., timeout, parameter validation error). Use for debugging.
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Error message description, returns empty string on success. Contains user-friendly error messages for common issues (401: API key invalid, 403: permission denied, 404: contact or account not found, 422: invalid data or duplicate association).

Delete an Account Contact

Permanently removes the association between an account and a contact in ActiveCampaign. This operation cannot be undone.

When to use:

  • Employee left the company
  • Incorrect association
  • Contact changed jobs

Key points:

  • Only the association is deleted, not the contact or account
  • Contact will no longer appear in the account's contact list
  • Account-specific contact data and history will be lost
  • Automations based on account-contact relationships may be affected

Input Parameters:

  • AssociationId: The ID of the account association to delete. Must be a positive integer greater than zero.

How to obtain

Option 1:

  1. Call the 'activecampaign_get_many_account_contacts` interface.
  2. Find the target AccountContacts in the returned AccountContacts object.
  3. Copy the id field value of AccountContacts array index object.

Option 2:

  1. Call the activecampaign_create_account_contact interface.
  2. Copy the id field value of the created AccountContact object.

Example: 12345

Output:

  • DeletedAccountContact (object): The deleted account contact association object. Contains at minimum the id of the deleted association and a deleted flag. May contain full association details (contact, account, jobTitle) if API returns them.
  • OriginalStatusCode (number): The original HTTP status code returned by the upstream ActiveCampaign API. Default 0 means the request did not reach upstream (e.g., timeout, parameter validation error). Use for debugging.
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Error message description, returns empty string on success. Contains user-friendly error messages for common issues (401: API key invalid, 404: resource not found, etc.).

Get Many Account Contacts

Retrieves a list of account-contact associations with pagination.

When to use:

  • List all contacts linked to accounts
  • Export B2B relationship data
  • Find contacts by account

Key points:

  • Returns associations with job titles
  • Supports pagination (Limit/Offset)
  • Each record links one contact to one account

Options:

  • Limit: Number of account contacts to return per request. Minimum: 1, Maximum: 100, Default: 10. Recommended: Use 20-50 for balanced performance. Use with Offset parameter for pagination. Example: 20
  • Offset: Starting position for pagination. Use with Limit to retrieve data in batches. Example: Offset=0 returns first 10 records, Offset=10 returns next 10 records. Default: 0

Output:

  • AccountContacts (object): Nested object containing account contacts data and metadata. Structure:
  • AccountContacts (array): List of account contact associations. Each object contains:
    • id (string): Unique identifier of the association
    • contact (string): Contact ID (use Get a Contact action to retrieve details)
    • account (string): Account ID (use Get an Account action to retrieve details)
    • jobTitle (string): Job title of the contact at this account
    • createdTimestamp (string): Creation time in ISO 8601 format
  • Total (number): Total number of account contacts in the system
  • Limit (number): Number of records returned in this request
  • Offset (number): Starting position of this batch
  • HasMore (boolean): Whether there are more records to fetch. If true, increment Offset by Limit to get next page.

Returns empty object {} on failure.

  • OriginalStatusCode (number): The original HTTP status code returned by the upstream ActiveCampaign API. Default 0 means the request did not reach upstream (e.g., timeout, parameter validation error). Use for debugging.
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Error message description, returns empty string on success. Contains detailed error information for troubleshooting.

Get an Account Contact

Retrieves a specific account-contact association by ID.

When to use:

  • Get relationship details between account and contact
  • Check contact's job title at account
  • Verify association exists

Key points:

  • Returns association with job title
  • AssociationId is the relationship ID (not Account or Contact ID)
  • Use from Get Many Account Contacts

Input Parameters:

  • AssociationId: The ID of the account-contact association you want to retrieve (must be a positive integer).

How to obtain

Option 1:

  1. Call the 'activecampaign_get_many_account_contacts` interface.
  2. Find the target AccountContacts in the returned AccountContacts object.
  3. Copy the id field value of AccountContacts array index object.

Option 2:

  1. Call the activecampaign_create_account_contact interface.
  2. Copy the id field value of the created AccountContact object.

Example: 1234

Output:

  • AccountContact (object): Account-contact association object with core fields:
  • id (string): Association record ID
  • contact (string): Contact ID
  • account (string): Account ID
  • jobTitle (string): Job title in this account relationship
  • createdTimestamp (string): Creation time (ISO 8601)
  • updatedTimestamp (string): Last update time (ISO 8601)

Returns empty object {} when business/system/validation error occurs.

  • OriginalStatusCode (number): Original HTTP status code returned by upstream API. 0 means request did not reach upstream.
  • StatusCode (number): Unified operation status code: 200 for success/business error, -1 for parameter validation error, 500 for system/network error.
  • ErrorMessage (string): Error details. Empty string means success. When StatusCode=200 and ErrorMessage is not empty, it indicates upstream business error.

Update an Account Contact

Updates an existing account-contact association's job title or reassigns to different account.

When to use:

  • Updating employee job titles
  • Reassigning contact to different account
  • Correcting association information

Key points:

  • Uses PUT (full replacement) - provide all fields
  • Requires valid AssociationId, ContactId, AccountId
  • JobTitle can be updated to new value
  • Changing AccountId moves contact to new account

Next: Get Many Account Contacts, Delete an Account Contact, Get an Account

Input Parameters:

  • AssociationId: The ID of the account association to update. Must be a positive integer.

How to obtain

Option 1:

  1. Call the 'activecampaign_get_many_account_contacts` interface.
  2. Find the target AccountContacts in the returned AccountContacts object.
  3. Copy the id field value of AccountContacts array index object.

Option 2:

  1. Call the activecampaign_create_account_contact interface.
  2. Copy the id field value of the created AccountContact object.

Example: 12345

  • ContactId: The ID of the contact to associate with the account. Must be a positive integer.

How to obtain

Option 1:

  1. Call the 'activecampaign_get_many_contacts` interface.
  2. Find the target Contacts in the returned Contacts object.
  3. Copy the id field value of Contacts array index object.

Option 2:

  1. Call the activecampaign_create_contact interface.
  2. Copy the id field value of the created Contact object.

Example: 67890

  • AccountId: The ID of the account to associate with the contact. Must be a positive integer.

How to obtain

Option 1:

  1. Call the 'activecampaign_get_many_accounts` interface.
  2. Find the target Accounts in the returned Accounts object.
  3. Copy the id field value of Accounts array index object.

Option 2:

  1. Call the activecampaign_create_account interface.
  2. Copy the id field value of the created Account object.

Example: 54321

Options:

  • JobTitle: The job title of the contact at this account. Optional field. Common examples: Marketing Manager, Sales Director, CEO, Product Manager, VP of Engineering

Output:

  • AccountContact (object): The updated account contact object, containing fields: id (string): Association ID, contact (string): Contact ID, account (string): Account ID, jobTitle (string): Job title, createdTimestamp (string): Creation date, updatedTimestamp (string): Last update date
  • OriginalStatusCode (number): The original HTTP status code returned by the upstream API. Default 0 means the request did not reach upstream (e.g., timeout). Use for debugging.
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Error description if any; empty on success.

Create a Connection

Creates a connection to link your e-commerce platform (Shopify, WooCommerce, etc.) with ActiveCampaign for syncing customer data and orders.

When to use:

  • Setting up e-commerce integration for the first time
  • Connecting a new store or platform to ActiveCampaign
  • Enabling Deep Data tracking for customer behavior

Key points:

  • Idempotent: Returns existing connection if externalid already exists (safe for retries)
  • ListId is optional - specify to auto-add new customers to a marketing list
  • ExternalId should match your store/platform ID

Next: Create an Ecommerce Customer, Create an Ecommerce Order

Input Parameters:

  • Service: The name of the service (e.g., "Shopify", "WooCommerce", "Magento"). This identifies which external platform you're connecting to. Common values: Shopify, WooCommerce, Magento, BigCommerce, Custom. Example: "Shopify"
  • ExternalId: The ID of the account in the external service. This is typically your store ID or account ID from the external platform. Alphanumeric string, typically 5-20 characters. Example: "shop12345"
  • Name: The name associated with the account in the external service. Often this will be a company name or store name. Example: "My Toystore, Inc."
  • LogoUrl: The URL to a logo image for the external service. This logo will be displayed in ActiveCampaign to represent the connection. Example: "https://cdn.shopify.com/logo.png"
  • LinkUrl: The URL to a page where the integration with the external service can be managed. This typically links to your admin panel or settings page. Example: "https://mytoystore.myshopify.com/admin/settings"

Options:

  • ListId: The ID of the list where new contacts from this connection will be synced. You can get this ID from 'Get Many Lists' action. Numeric string (e.g., '3', '42').

When to use: If you want new contacts from the external service (e.g., Shopify customers) to be automatically added to a specific ActiveCampaign list for email marketing.

Leave empty if: You only want to track the connection without auto-syncing contacts, or you'll manually add contacts to lists later.

Example: "3"

Output:

  • Connection (object): A connection object containing the created connection details. It includes fields:
  • id (string): The connection ID
  • service (string): Service name
  • externalid (string): External account ID
  • name (string): Connection name
  • logoUrl (string): Logo URL
  • linkUrl (string): Link URL
  • status (string): Connection status ("0"=inactive, "1"=active)
  • syncStatus (string): Sync status ("0"=not syncing, "1"=syncing)
  • cdate (string): Creation date in ISO 8601 format
  • udate (string): Last update date in ISO 8601 format
  • links (object): Related resource URLs (e.g., customers endpoint for fetching synced contacts)

Example: {"id": "789", "service": "Shopify", "externalid": "shop12345", "name": "My Toystore, Inc.", "status": "1", "syncStatus": "0", "links": {"customers": "https://youraccount.api-us1.com/api/3/connections/789/customers"}}

  • OriginalStatusCode (number): The original HTTP status code returned by the upstream ActiveCampaign API. Default 0 means the request did not reach upstream (e.g., timeout, parameter validation error). Use for debugging.
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Error message description, returns empty string on success. Contains user-friendly error messages for common issues (401: API key invalid, 422: duplicate connection or invalid data, etc.).

Delete a Connection

Permanently deletes a connection (external service integration) from ActiveCampaign by its unique identifier. This operation cannot be undone.

When to use:

  • Remove inactive or misconfigured connections
  • Clean up unused integrations
  • Replace old connections with new ones

Key points:

  • Deletion is permanent and irreversible
  • All data syncing and integration features will stop working
  • Historical data remains but no new data will be synced
  • Automations and campaigns using this connection may fail

Input Parameters:

  • ConnectionId: The unique identifier of the connection to delete. Must be a positive integer.

How to obtain

Option 1:

  1. Call the activecampaign_get_many_connections action to get the connection ID for your e-commerce service.
  2. Find the target Connections in the returned Connections object.
  3. Copy the id field value of Connections array index object.

Option 2:

  1. Create a connection object for your e-commerce service using the activecampaign_create_connection action.
  2. Copy the id field value of the created Connection object.

Example: 123

Output:

  • DeletedConnection (object): The deleted connection information. Contains the deletion result with the following structure:
  • id (string): The ID of the deleted connection
  • deleted (boolean): Whether the connection was successfully deleted

Returns empty object {} on failure.

  • OriginalStatusCode (number): The original HTTP status code returned by the upstream ActiveCampaign API. Default 0 means the request did not reach upstream (e.g., timeout, parameter validation error). Use for debugging.
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Error message description, returns empty string on success. Contains user-friendly error messages for common issues (401: API key invalid, 404: resource not found, etc.).

Get Many Connections

Retrieves a list of e-commerce connections with filtering and pagination.

When to use:

  • List all store integrations
  • Find connections by service (Shopify, WooCommerce, etc.)
  • Check connection status

Key points:

  • Filter by service name or external ID
  • Returns connection IDs and sync status
  • Supports pagination

Options:

  • FilterService: Filter connections by the external service name. Common services: 'shopify' (Shopify stores), 'woocommerce' (WooCommerce sites), 'bigcommerce' (BigCommerce stores). Leave empty to retrieve all connections. Example: \"shopify\"
  • FilterExternalId: Filter connections by external ID. External ID is the unique identifier from the external service (for example, Shopify store ID like 'shop_12345' or a WooCommerce site ID). Best practice: use with FilterService for accurate filtering. Example: "shop_12345"
  • Limit: Maximum number of connections to return per request. Default: 20, Max: 100. Example: 20
  • Offset: Number of connections to skip. Use with Limit for pagination. Example: Offset=20, Limit=20 returns records 21-40.

Output:

  • Connections (object): Business data object for connections query. Includes:
  • Connections (array): Each connection object may include id (string), service (string), externalid (string), name (string), status (string), syncStatus (string), linkUrl (string), logoUrl (string), cdate (string), udate (string).
  • Pagination (object): limit (number), offset (number), total (number), total matched records across all pages), hasMore (boolean).
  • OriginalStatusCode (number): Original HTTP status code returned by upstream API. 0 means request did not reach upstream.
  • StatusCode (number): Unified operation status code: 200 for success/business error, -1 for parameter validation error, 500 for system/network error.
  • ErrorMessage (string): Error details. Empty string means success. When StatusCode=200 and ErrorMessage is not empty, it indicates upstream business error.

Get a Connection

Retrieves one specific connection from ActiveCampaign by ConnectionId.

A connection represents an integration between ActiveCampaign and an external service (for example, Shopify, WooCommerce, or Salesforce), including its sync and status information.

Use this action when you already have a connection ID and need full connection details for validation, status checks, or downstream sync workflows.

Business data is returned in ConnectionData.

Input Parameters:

  • ConnectionId: The ID of the connection you want to retrieve (must be a positive integer).

A connection represents an integration between ActiveCampaign and an external service (e.g., Shopify, Salesforce). You can obtain this ID by:

  • Calling Get_Many_Connections to list all existing connections
  • Using the ID returned from Create_a_Connection after creating a new connection

Example: 12345

Output:

  • Connection (object): Connection object containing:
  • Connection (object): Connection details with the following fields:
    • id (string): Unique connection identifier
    • service (string): External service name (e.g., "salesforce", "shopify", "woocommerce")
    • externalid (string): External system's identifier for this connection
    • name (string): User-defined connection name
    • status (string): Connection status ("0"=inactive, "1"=active)
    • syncStatus (string): Sync status ("0"=not syncing, "1"=syncing)
    • linkUrl (string): URL to the external service login page
    • logoUrl (string): URL to the service logo image
    • cdate (string): Creation timestamp in ISO 8601 format
    • udate (string): Last update timestamp in ISO 8601 format

Returns empty object {} if operation failed.

  • OriginalStatusCode (number): The original HTTP status code returned by ActiveCampaign API. 0 if request did not reach the API (local validation error or network error).
  • StatusCode (number): Unified status code: 200 = success, 500 = network error, -1 = parameter validation error.
  • ErrorMessage (string): Error details if any, empty string otherwise.

Update a Connection

Updates an existing e-commerce connection with new information.

When to use:

  • Changing connection display name
  • Updating logo or link URLs
  • Changing the auto-add list for new customers

Key points:

  • Requires ConnectionId to identify which connection to update
  • Uses PUT method (full replacement)
  • Service and ExternalId cannot be changed
  • All provided fields will replace existing values

Next: Get a Connection, Delete a Connection

Input Parameters:

  • ConnectionId: The unique identifier of the connection to update. You can get this ID from the 'List Connections' action or the ActiveCampaign dashboard.
  • Service: The name of the service (e.g., 'Salesforce', 'HubSpot', 'Shopify'). This identifies the external integration.
  • ExternalId: The unique identifier of the account in the external service (e.g., Salesforce Account ID).
  • Name: The display name for this connection, usually the company name (e.g., 'Acme Corp').

Options:

  • LogoUrl: URL to the logo image for the external service. Example: https://example.com/logo.png
  • LinkUrl: URL to the page where the integration can be managed in the third-party's website.
  • AdditionalFields: Optional additional connection fields.

Available fields:

  • listId (string): The ID of the list where new contacts will be synced
  • status (number): Connection status (0 = error, 1 = connected)
  • syncStatus (number): Sync status (0 = stopped, 1 = running)

Example: {"listId": "5", "status": 1, "syncStatus": 1}

Output:

  • Connection (object): ActiveCampaign connection object. Contains the following fields when successful: id (number), service (string), externalid (string), name (string), logoUrl (string), linkUrl (string), listId (string, optional), status (number, optional), syncStatus (number, optional). Returns empty object {} on failure.
  • OriginalStatusCode (number): The original HTTP status code returned by ActiveCampaign API (200/201 for success, 400/401/404/500 etc. for errors). Returns 0 if the request did not reach the upstream API (e.g., local validation failed).
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Detailed error message. Empty string on success. For API errors, includes the original error response from ActiveCampaign.

Create a Contact

Creates a contact in ActiveCampaign with email, name, phone, and custom fields.

When to use:

  • Adding leads from website forms or landing pages
  • Importing contacts from CRM/spreadsheets/CSV files
  • Syncing customer data from e-commerce platforms

Key points:

  • Idempotent: Updates existing contact if email matches (upsert behavior)
  • Email required (unless phone + allowNullEmail=true in AdditionalFields)
  • Custom fields: Use AdditionalFields.fieldValues with field ID

Next: Add Contact to List, Add a Contact Tag, Update a Contact

Input Parameters:

  • Email: Email address of the new contact. This field is required unless a phone number is provided and the account has opted-in to phone-only contacts. Format: user@example.com. Example: "john.doe@example.com"

Options:

  • FirstName: First name of the new contact. Example: "John"
  • LastName: Last name of the new contact. Example: "Doe"
  • Phone: Phone number of the contact. Supports international format. Example: "+1-555-0100"
  • AllowNullEmail: If it sets True, allows creating a contact without an email address.
  • FieldValues: List of field values to be added to the contact. Each item should be a dictionary with "field" and "value" keys.
    [
       {
            "field": "1",
            "value": "The Value for First Field"
        },
        {
            "field": "6",
            "value": "2026-03-18"
        }
    ]
    
    

Output:

  • Contact (object): The created contact object with complete information. It includes contact and fieldValues fields.

contact field contains the following fields:

id (str): Contact ID.

email (str): Email address of the contact.

phone (str): Phone number of the contact.

cdate (str): Creation date of the contact.

update (str): Last update date of the contact.

links (object): Links to related resources.

orgid (str): ID of the organization associated with the contact.

organization (str): Organization associated with the contact.

fieldValues field contains a list of field values associated with the contact. Each item is a dictionary with "field" and "value" keys etc.

field (str): Field ID.

value (str): Value of the field.

contact (str): Contact ID.

cdate (str): Creation date of the field value.

udate (str): Last update date of the field value.

links (object): Links to related resources.

id (str): Field value ID.

owner (str): Owner ID.

  • OriginalStatusCode (number): The original HTTP status code returned by ActiveCampaign API. 0 if request did not reach the API (local validation error or network error).
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Error message description, returns empty string on success. Contains user-friendly error messages for common issues (401: API key invalid, 403: permission denied, 422: invalid data, etc.).

Delete a Contact

Permanently deletes a contact from ActiveCampaign by their unique identifier. This operation cannot be undone.

When to use:

  • GDPR/privacy compliance requests
  • Clean up duplicate records
  • Remove test contacts

Key points:

  • Deletion is permanent and irreversible
  • All contact data, tags, lists, and activity history will be removed
  • Consider exporting contact data before deletion
  • Returns standardized status fields for workflow decision-making

Input Parameters:

  • ContactId: The unique identifier of the contact to delete. Must be a positive integer (greater than zero).

How to obtain

Option 1:

  1. Call the 'activecampaign_get_many_contacts` interface.
  2. Find the target Contacts in the returned Contacts object.
  3. Copy the id field value of Contacts array index object.

or Option 2:

  1. Call the activecampaign_create_contact interface.
  2. Copy the id field value of the created Contact object.

Example: 123

Output:

  • DeletedContact (object): The deleted contact information. Contains the deletion result with the following structure:
  • id (string): The ID of the deleted contact
  • deleted (boolean): Whether the contact was successfully deleted

Returns empty object {} on failure.

  • OriginalStatusCode (number): The original HTTP status code returned by the upstream ActiveCampaign API. Default 0 means the request did not reach upstream (e.g., timeout, parameter validation error). Use for debugging.
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Error message description, returns empty string on success. Contains user-friendly error messages for common issues (401: API key invalid, 404: resource not found, etc.).

Get Many Contacts

Retrieves a paginated list of contacts with filtering and sorting.

When to use:

  • List all contacts
  • Search by email or phone
  • Export contact data

Key points:

  • Filter by email or phone (exact match)
  • Sort by ID or email
  • Pagination: max 100 per request

Options:

  • Limit: Number of accounts to retrieve per request, must be >= 1.
  • Offset: Pagination offset, minimum value is 0.
  • Email: Filter by email address. Supports exact match. Example: 'john.doe@company.com'
  • Phone: Filter by phone number. Supports international format with country code. Example: '+1-555-0100' or '5550100'
  • SortById: Sort order by contact ID. ASC (ascending, smallest to largest) or DESC (descending, largest to smallest). Default: ASC. Example: 'DESC'
  • SortByEmail: Sort order by email address alphabetically. ASC (A-Z) or DESC (Z-A). Default: ASC. Example: 'ASC'

Output:

  • Contacts (object): Nested object containing contacts data and metadata. Structure:
  • Contacts (array): List of contact objects. Each contact contains:
    • id (string): Unique identifier
    • email (string): Email address
    • firstName (string): First name
    • lastName (string): Last name
    • phone (string): Phone number
    • cdate (string): Creation date in ISO 8601 format
    • udate (string): Last update date in ISO 8601 format
  • Total (number): Total number of contacts matching the criteria.

Returns empty object {} on failure.

  • OriginalStatusCode (number): The original HTTP status code returned by the upstream API. Default 0 means the request did not reach upstream (e.g., timeout). Use for debugging.
  • 0: Did not reach upstream API
  • 200: Upstream success
  • 4xx: Client error (400 Bad Request / 401 Unauthorized / 403 Forbidden / 404 Not Found)
  • 5xx: Upstream server error
  • StatusCode (number): Operation status code:
  • 200: Success. The upstream API request completed successfully. Check ErrorMessage for business-level errors.
  • -1: Parameter validation error. One or more input parameters are invalid or missing.
  • 500: System error. Network timeout, connection failure, or response parsing error. The operation may be retried.
  • ErrorMessage (string): Detailed error message if any error occurred. Empty string if the operation succeeded.
  • When StatusCode is 200 and ErrorMessage is empty: Operation fully succeeded.
  • When StatusCode is 200 and ErrorMessage is not empty: Upstream API returned a business error (e.g., invalid filter, permission denied).
  • When StatusCode is -1: Describes which parameter is invalid and how to fix it.
  • When StatusCode is 500: Describes the system-level error (timeout, connection failure, etc.).

Get a Contact

Retrieves detailed information for a specific contact by ID.

When to use:

  • Get contact details before updating
  • Verify contact exists
  • Check contact tags and custom fields

Key points:

  • Returns all contact fields including custom fields
  • Use ContactId from search/list actions or dashboard
  • Includes tags, lists, and field values

Input Parameters:

  • ContactId: The unique identifier of the contact to retrieve. Must be a positive integer greater than zero.

How to obtain

Option 1:

  1. Call the 'activecampaign_get_many_contacts` interface.
  2. Find the target Contacts in the returned Contacts object.
  3. Copy the id field value of Contacts array index object.

or Option 2:

  1. Call the activecampaign_create_contact interface.
  2. Copy the id field value of the created Contact object.

Example: 123456

Output:

  • Contact (object): Contact details object containing the following core fields:
  • id (string): Unique contact identifier
  • email (string): Contact's email address
  • firstName (string): Contact's first name
  • lastName (string): Contact's last name
  • phone (string): Contact's phone number
  • tags (array): List of tags assigned to the contact
  • cdate (string): Contact creation date (ISO 8601 format)
  • udate (string): Last update date

Returns empty object {} on failure. Full field list: https://developers.activecampaign.com/reference/contact

  • OriginalStatusCode (number): The original HTTP status code returned by the upstream API. Default 0 means the request did not reach upstream (e.g., timeout). Use for debugging.
  • 0: Did not reach upstream API
  • 200: Upstream success
  • 4xx: Client error (400 Bad Request / 401 Unauthorized / 403 Forbidden / 404 Not Found)
  • 5xx: Upstream server error
  • StatusCode (number): Operation status code:
  • 200: Success. The upstream API request completed successfully. Check ErrorMessage for business-level errors.
  • -1: Parameter validation error. One or more input parameters are invalid or missing.
  • 500: System error. Network timeout, connection failure, or response parsing error. The operation may be retried.
  • ErrorMessage (string): Detailed error message if any error occurred. Empty string if the operation succeeded.
  • When StatusCode is 200 and ErrorMessage is empty: Operation fully succeeded.
  • When StatusCode is 200 and ErrorMessage is not empty: Upstream API returned a business error (e.g., contact not found, permission denied).
  • When StatusCode is -1: Describes which parameter is invalid and how to fix it.
  • When StatusCode is 500: Describes the system-level error (timeout, connection failure, etc.).

Update a Contact

Updates an existing contact's information.

When to use:

  • Updating contact details after form submission
  • Syncing contact changes from CRM
  • Modifying custom field values

Key points:

  • Partial update: Only provided fields are updated
  • ContactData is a JSON object with fields to update
  • Can update email, first name, last name, phone, fieldValues, etc.
  • Email updates may merge contacts if email already exists

Next: Get a Contact, Add Contact to List, Add a Contact Tag

Input Parameters:

  • ContactId: ID of the contact to update.

How to obtain

Option 1:

  1. Call the 'activecampaign_get_many_contacts` interface.
  2. Find the target Contacts in the returned Contacts object.
  3. Copy the id field value of Contacts array index object.

or Option 2:

  1. Call the activecampaign_create_contact interface.
  2. Copy the id field value of the created Contact object.

Example: 123456789

Options:

  • Email: Contact's email address. Example: john.doe@example.com
  • FirstName: Contact's first name. Example: John
  • LastName: Contact's last name. Example: Doe
  • Phone: Contact's phone number. Supports international format. Example: +1-555-0100
  • FieldValues: Contact's custom field values.

Example:

[

{

"field": "1",

"value": "The Value for First Field"

},

{

"field": "6",

"value": "2026-03-20"

}

]

Output:

  • Contact (object): Updated contact object containing:
  • id (string): Contact ID
  • email (string): Email address
  • firstName (string): First name
  • lastName (string): Last name
  • phone (string): Phone number
  • cdate (string): Creation date (ISO 8601)
  • udate (string): Last update date (ISO 8601)
  • fieldValues (array): Custom field values

Returns empty object {} if operation failed.

  • OriginalStatusCode (number): The original HTTP status code returned by the upstream API. Default 0 means the request did not reach upstream (e.g., timeout). Use for debugging.
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Detailed error message if any error occurred. Empty string if the operation succeeded.
  • When StatusCode is 200 and ErrorMessage is empty: Operation fully succeeded.
  • When StatusCode is 200 and ErrorMessage is not empty: Upstream API returned a business error (e.g., resource not found, permission denied).
  • When StatusCode is -1: Describes which parameter is invalid and how to fix it.
  • When StatusCode is 500: Describes the system-level error (timeout, connection failure, etc.).

Add a Contact to a List

Subscribe a contact to an ActiveCampaign mailing list to enable email communications and campaign targeting.

When to use:

  • Adding new contacts to email marketing campaigns
  • Organizing contacts into segmented lists for targeted messaging
  • Re-subscribing contacts who previously opted out (use Status=1)

Prerequisites:

  • Get ContactId from 'Get a Contact' (search by email) or 'Create a Contact'
  • Get ListId from 'Get Many Lists'

Key points:

  • Status: 1 = Subscribe (default), 2 = Unsubscribe
  • SourceId: 0 = Manual/API (default), 4 = Re-subscription
  • Idempotent: If contact already subscribed, updates their status (safe for retries)
  • ⚠️ WARNING: Changing Status from 2→1 will re-subscribe a contact who manually unsubscribed

Next: Send email campaigns, Add a Contact Tag, Update a Contact

Input Parameters:

  • ContactId: The ID of the contact to add to the list (must be greater than zero).

How to obtain

  1. Call the 'activecampaign_get_many_contacts` interface.
  2. Find the target Contacts in the returned Contacts object.
  3. Copy the id field value of Contacts array index object.
  • ListId: The ID of the list to add the contact to (must be greater than zero).

How to obtain

  1. Call the 'activecampaign_get_many_lists` interface.
  2. Find the target Lists in the returned Lists object.
  3. Copy the id field value of Lists array index object.

Options:

  • SourceId: Source ID indicating how the contact was added to the list. Common values: 0 = Manual/API, 4 = Re-subscription. Set to 4 when re-subscribing a contact to a list they previously unsubscribed from. Default: 0
  • Status: Subscription status: 1 = Subscribe (activate subscription, contact will receive emails), 2 = Unsubscribe (deactivate subscription, contact will not receive emails). ⚠️ WARNING: Changing status from 2 to 1 will re-subscribe a contact who manually unsubscribed. Default: 1

Output:

  • ContactList (object): A contact-list association object containing the created association details. It includes fields:
  • id (string): The contactList association ID
  • contact (string): The contact ID
  • list (string): The list ID
  • status (string): Subscription status ("1" = active/subscribed, "2" = unsubscribed)
  • sourceid (string): Source ID ("0" = manual/API, "4" = re-subscription)
  • cdate (string): Creation date in ISO 8601 format

Example: {"id": "789", "contact": "123", "list": "456", "status": "1", "sourceid": "0", "cdate": "2024-01-15T10:30:00-06:00"}

  • OriginalStatusCode (number): The original HTTP status code returned by the upstream ActiveCampaign API. Default 0 means the request did not reach upstream (e.g., timeout, parameter validation error). Use for debugging.
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Error message description, returns empty string on success. Contains user-friendly error messages for common issues (401: API key invalid, 404: resource not found, 422: duplicate association, etc.).

Remove a Contact from a List

Remove a contact from an ActiveCampaign list to unsubscribe them or update list memberships.

When to use:

  • Unsubscribing contacts from specific mailing lists
  • Moving contacts between lists (remove from old, add to new)
  • Cleaning up duplicate list subscriptions
  • Implementing opt-out workflows

Prerequisites:

  • Get ContactId from 'Get a Contact' or 'Search Contacts' actions
  • Get ListId from 'Get Many Lists' action

Key points:

  • Handles duplicate subscriptions: If multiple contact-list relationships exist, all are removed
  • Returns RemovedCount indicating how many subscriptions were deleted
  • Idempotent: Removing non-existent subscription returns error but provides clear feedback
  • Does not delete the contact or list, only the subscription relationship

Next: Add a Contact to a List, Get Many Lists, Search unsubscribed contacts

Input Parameters:

  • ContactId: ID of the contact to remove (must be a positive integer). You can obtain ContactId from Search Contacts or Get a Contact actions. Example: 12345
  • ListId: ID of the list to remove the contact from (must be a positive integer). You can obtain ListId from Get Many Lists action. Example: 67890

Output:

  • RemovedContactList (object): The removed contact-list association result object containing: RemovedCount (number, how many subscription relationships were deleted), ContactId (number, the contact ID), and ListId (number, the list ID). RemovedCount indicates the number of contact-list subscription relationships successfully removed.
  • OriginalStatusCode (number): The original HTTP status code returned by the upstream ActiveCampaign API. Default 0 means the request did not reach upstream (e.g., timeout, parameter validation error). Use for debugging.
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Error message description, returns empty string on success. Contains user-friendly error messages for common issues (401: API key invalid, 404: resource not found, etc.).

Add a Contact Tag

Add a tag to a contact in ActiveCampaign for categorization, segmentation, and automation triggering.

When to use:

  • Organizing contacts by characteristics (e.g., "VIP Customer", "Product Interest: Premium Plan")
  • Segmenting contacts for targeted campaigns
  • Triggering automation workflows based on contact behavior
  • Tracking lead sources (e.g., "Source: Website", "Source: Referral")

Prerequisites:

  • Get ContactId from 'Get a Contact' (search by email) or 'Create a Contact'
  • Get TagId from 'Get All Tags' or create new tag with 'Create a Tag'

Key points:

  • Idempotent: If contact already has this tag, action has no effect (safe for retries)
  • Multiple tags can be applied to one contact
  • Tags are reusable across many contacts

Next: Create automation rules based on tags, Search contacts by tag, Remove a Contact Tag

Input Parameters:

  • ContactId: The ID of the contact to tag.

How to obtain

  1. Call the 'activecampaign_get_many_contacts` interface.
  2. Find the target Contacts in the returned Contacts object.
  3. Copy the id field value of Contacts array index object.

Example: 8

  • TagId: The ID of the tag to apply.

How to obtain

  1. Call the 'activecampaign_get_many_tags` interface.
  2. Find the target Tags in the returned Tags object.
  3. Copy the id field value of Tags object.

Example: 8

Output:

  • ContactTag (object): A contact-tag association object containing the created association details. It includes fields: id (string, the contactTag ID), contact (string, the contact ID), tag (string, the tag ID), cdate (string, creation date).
  • OriginalStatusCode (number): The original HTTP status code returned by the upstream ActiveCampaign API. Default 0 means the request did not reach upstream (e.g., timeout, parameter validation error). Use for debugging.
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Error message description, returns empty string on success. Contains user-friendly error messages for common issues (401: API key invalid, 404: resource not found, 422: duplicate association, etc.).

Remove a Contact Tag

Remove a tag from a contact in ActiveCampaign to update categorization or clean up obsolete labels.

When to use:

  • Removing outdated tags (e.g., "Trial User" after subscription)
  • Updating contact segmentation (e.g., "Interest: Product A" → "Interest: Product B")
  • Cleaning up incorrectly applied tags
  • Unsubscribing contacts from tag-based automation workflows

Prerequisites:

  • Get ContactTagId (association ID) from 'List Contact Tags' or 'Get a Contact' actions
  • ⚠️ This is NOT Tag ID or Contact ID, but the association record ID

Key points:

  • Operation is permanent and cannot be undone
  • Idempotent: Removing non-existent association returns 404 but won't break workflow
  • Only removes the association, not the tag or contact itself
  • Tag can still be reapplied later if needed

Next: Add a Contact Tag, Get a Contact, Search contacts without specific tags

Input Parameters:

  • ContactTagId: The ID of the contact tag association (binding relationship between contact and tag).

How to obtain:

  • From List Contact Tags API: response.contactTags[i].id
  • From Get a Contact API: response.contact.contactTags[i].id

Important: This is NOT Tag ID or Contact ID. It's the association record ID.

Example: "12345"

Output:

  • RemovedContactTag (object): The removed contact-tag association object. Contains the tag information that was removed including: id (string, the contact tag association ID), contact (string, the contact ID), tag (string, the tag ID), deleted (boolean, always true for successful deletion), and message (string, confirmation message). Note: If API returns 204 No Content, may contain only basic confirmation fields.
  • OriginalStatusCode (number): The original HTTP status code returned by the upstream ActiveCampaign API. Default 0 means the request did not reach upstream (e.g., timeout, parameter validation error). Use for debugging.
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Error message description, returns empty string on success. Contains user-friendly error messages for common issues (401: API key invalid, 404: resource not found, etc.).

Create a Deal

Creates a deal to track sales opportunities through pipeline stages.

When to use:

  • Tracking sales opportunity or purchase intent
  • Recording deal amount, contact, and pipeline stage
  • Building sales automation workflows

Key points:

  • Value auto-converts to cents (50000 -> 5000000)
  • Currency auto-converts to uppercase
  • Requires valid ContactId, StageId, PipelineId

[!] Important: No duplicate protection. Retries create new deals. Use 'Get Many Deals' with filters first when syncing external systems.

Next: Create a Deal Note, Update a Deal, Get a Deal

Input Parameters:

  • Title: Deal title. Briefly describe the transaction content, such as 'Q1 Enterprise Deal - Acme Corp'. Example: "Annual Software License - TechCo"
  • ContactId: The ID of the contact associated with the deal. You can obtain this ID by calling 'Get a Contact' or 'Get Many Contacts' actions. Example: 123
  • Value: Deal's value in cents. (i.e. $456.78 => 45678). Must be greater than or equal to zero.
  • Currency: Currency code (ISO 4217 standard, case-insensitive, will be automatically converted to uppercase). Common values: USD (US Dollar), EUR (Euro), GBP (British Pound), CNY (Chinese Yuan), JPY (Japanese Yen). Example: "USD" or "usd" (both accepted)
  • StageId: The ID of the stage the deal is in. You can obtain stage IDs by calling 'Get Many Stages' action for a specific pipeline. Example: 1
  • PipelineId: The ID of the pipeline the deal belongs to. You can obtain pipeline IDs by calling 'Get Many Pipelines' action. Example: 1

Options:

  • Owner: The ID of the user who owns the deal. Defaults to 1 (the first user in the account).
  • AdditionalFields: Additional fields (key-value pairs). Use this to fill in non-core fields.

Common additional fields:

  • description (string): Deal's description
  • group (number): Group ID
  • percent (number): Win probability (0-100)
  • status (number): Status (0=Open, 1=Won, 2=Lost)

For complete field list, refer to https://developers.activecampaign.com/reference/create-a-deal-new.

Example: {"description":"Deal's description", "percent": 75, "status": 0}

Output:

  • Deal (object): A deal object containing the created deal details.

Core fields (always present):

  • id (string): The deal ID
  • title (string): Deal title
  • contact (string): Contact ID
  • value (string): Deal value in cents
  • currency (string): Currency code
  • stage (string): Stage ID
  • pipeline (string): Pipeline ID
  • status (string): Deal status ("0"=Open, "1"=Won, "2"=Lost)
  • cdate (string): Creation date in ISO 8601 format

Optional fields (present if specified during creation):

  • owner (string): Owner user ID (if provided in AdditionalFields)
  • percent (string): Win probability 0-100 (if provided in AdditionalFields)
  • description (string): Deal description (if provided)
  • group (string): Group ID (if provided in AdditionalFields)

Example: {"id": "123", "title": "Q1 Enterprise Deal", "contact": "456", "value": "5000000", "currency": "USD", "status": "0"}

  • OriginalStatusCode (number): The original HTTP status code returned by the upstream ActiveCampaign API. Default 0 means the request did not reach upstream (e.g., timeout, parameter validation error). Use for debugging.
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Error message description, returns empty string on success. Contains user-friendly error messages for common issues (401: API key invalid, 403: permission denied, 404: resource not found, etc.).

Delete a Deal

Permanently deletes a deal from ActiveCampaign by its unique identifier. This operation cannot be undone.

When to use:

  • Remove cancelled or duplicate deals
  • Clean up test data
  • Handle deals created by mistake

Key points:

  • Deletion is permanent and irreversible
  • All deal-related data (custom fields, notes, activities) will be removed
  • Deal value and stage history will be lost from analytics
  • Ensure deal is not critical to reporting or pipeline analytics

Input Parameters:

  • DealId: The ID of the deal to delete.(It must be greater than zero.)

How to obtain

Option 1:

  1. Call the 'activecampaign_get_many_deals` interface.
  2. Find the target deals in the returned Deals object.
  3. Copy the id field value of deals array index object.

or Option 2:

  1. Call the activecampaign_create_deal interface.
  2. Copy the id field value of the created Deal object.

Example: 12345

Output:

  • DeletedDeal (object): The deleted deal information containing the deal ID and deletion status. Empty object on failure.
  • OriginalStatusCode (number): The original HTTP status code returned by the upstream ActiveCampaign API. Default 0 means the request did not reach upstream (e.g., timeout, parameter validation error). Use for debugging.
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Error message description, returns empty string on success. Contains user-friendly error messages for common issues (401: API key invalid, 404: resource not found, etc.).

Get Many Deals

Retrieves a paginated list of deals with search and sorting.

When to use:

  • List all deals
  • Search deals by title
  • Export deal data

Key points:

  • Fuzzy search by deal title
  • Sort by title (A-Z or Z-A)
  • Pagination: max 100 per request

Options:

  • Search: Search string to filter deals by title (fuzzy match). Searches within deal titles using partial matching. Leave empty to return all deals. Example: 'Acme' will match 'Acme Corp Deal' and 'New Acme Project'.
  • OrderTitle: Sort order for deal titles (alphabetical). Options:
  • ASC: Ascending order (A→Z, default)
  • DESC: Descending order (Z→A)

Note: Sorting is applied to the 'title' field only. For sorting by other fields (value, stage, etc.), use the ActiveCampaign web interface.

  • Limit: Maximum number of deals to return per request. Default: 100. Range: 1-100. Use with Offset for pagination.
  • Offset: Number of deals to skip before starting to return results. Used for pagination. Default: 0. Example: offset=100 returns deals 101-200.

Output:

  • Deals (object): The retrieved deals data object containing:
  • deals (array): Array of deal objects. Each deal contains:
    • id (string): Unique deal identifier
    • title (string): Deal title/name
    • value (string): Deal monetary value
    • currency (string): Currency code (e.g., 'usd')
    • stage (string): Pipeline stage ID
    • owner (string): Deal owner user ID
    • contact (string): Associated contact ID
    • organization (string): Associated organization ID
    • status (string): Deal status (0=open, 1=won, 2=lost)
    • created_timestamp (string): Creation time in ISO 8601 format
  • total (number): Total number of deals matching the criteria

Returns empty object {} on failure.

  • OriginalStatusCode (number): The original HTTP status code returned by the upstream API. Default 0 means the request did not reach upstream (e.g., timeout). Use for debugging.
  • 0: Did not reach upstream API
  • 200: Upstream success
  • 4xx: Client error (400 Bad Request / 401 Unauthorized / 404 Not Found)
  • 5xx: Upstream server error
  • StatusCode (number): Operation status code:
  • 200: Success. The upstream API request completed successfully. Check ErrorMessage for business-level errors.
  • -1: Parameter validation error. One or more input parameters are invalid or missing.
  • 500: System error. Network timeout, connection failure, or response parsing error. The operation may be retried.
  • ErrorMessage (string): Detailed error message if any error occurred. Empty string if the operation succeeded.
  • When StatusCode is 200 and ErrorMessage is empty: Operation fully succeeded.
  • When StatusCode is 200 and ErrorMessage is not empty: Upstream API returned a business error (e.g., invalid search query, permission denied).
  • When StatusCode is -1: Describes which parameter is invalid and how to fix it.
  • When StatusCode is 500: Describes the system-level error (timeout, connection failure, etc.).

Get a Deal

Retrieves complete information for a specific deal by ID.

When to use:

  • Get deal details before updating
  • Check deal status and stage
  • Verify deal value and owner

Key points:

  • Returns deal with all fields (title, value, stage, status)
  • Status: 0=open, 1=won, 2=lost
  • Use DealId from search/list actions

Input Parameters:

  • DealId: The unique identifier of the deal to retrieve. Must be a positive integer.

How to obtain

Option 1:

  1. Call the 'activecampaign_get_many_deals` interface.
  2. Find the target deals in the returned Deals object.
  3. Copy the id field value of deals array index object.

or Option 2:

  1. Call the activecampaign_create_deal interface.
  2. Copy the id field value of the created Deal object.

Example: 12345

Output:

  • Deal (object): The retrieved deal object containing the following core fields:
  • id (string): Deal unique identifier
  • title (string): Deal title/name
  • value (string): Deal monetary value
  • currency (string): Currency code (e.g., 'usd')
  • status (string): Deal status (0=open, 1=won, 2=lost)
  • stage (string): Pipeline stage ID
  • owner (string): User ID of the deal owner
  • contact (string): Contact ID associated with the deal
  • organization (string): Organization ID
  • created_timestamp (string): Creation time in ISO 8601 format
  • updated_timestamp (string): Last update time

Returns empty object {} on failure.

  • OriginalStatusCode (number): The original HTTP status code returned by the upstream API. Default 0 means the request did not reach upstream (e.g., timeout). Use for debugging.
  • 0: Did not reach upstream API
  • 200: Upstream success
  • 4xx: Client error (400 Bad Request / 401 Unauthorized / 404 Not Found)
  • 5xx: Upstream server error
  • StatusCode (number): Operation status code:
  • 200: Success. The upstream API request completed successfully. Check ErrorMessage for business-level errors.
  • -1: Parameter validation error. One or more input parameters are invalid or missing.
  • 500: System error. Network timeout, connection failure, or response parsing error. The operation may be retried.
  • ErrorMessage (string): Detailed error message if any error occurred. Empty string if the operation succeeded.
  • When StatusCode is 200 and ErrorMessage is empty: Operation fully succeeded.
  • When StatusCode is 200 and ErrorMessage is not empty: Upstream API returned a business error (e.g., deal not found, permission denied).
  • When StatusCode is -1: Describes which parameter is invalid and how to fix it.
  • When StatusCode is 500: Describes the system-level error (timeout, connection failure, etc.).

Update a Deal

Updates an existing deal's information using merge-before-put strategy.

When to use:

  • Updating deal amount or stage
  • Changing deal status (open/won/lost)
  • Modifying deal title or description
  • Moving deal to different pipeline/stage

Key points:

  • Merge-before-put: Fetches current deal first, then merges changes
  • Value in cents (50000 = $500.00)
  • Status: 0=open, 1=won, 2=lost
  • Currency must be lowercase (usd, eur, gbp)
  • At least one field must be provided

Next: Get a Deal, Create a Deal Note, Get Many Deals

Input Parameters:

  • DealId: The ID of the deal to update.

How to obtain

Option 1:

  1. Call the 'activecampaign_get_many_deals` interface.
  2. Find the target deals in the returned Deals object.
  3. Copy the id field value of deals array index object.

or Option 2:

  1. Call the activecampaign_create_deal interface.
  2. Copy the id field value of the created Deal object.

Example: 123

Options:

  • Title: Deal title. Example: "Updated Deal - Q1 Enterprise Contract"
  • Value: Deal value in cents. Example: 50000 means $500.00
  • Currency: 3-letter ISO currency code in lowercase. Example: "usd"
  • Status: Deal status. Allowed values: 0=open, 1=won, 2=lost. Example: 0
  • Description: Deal description text. Example: "Updated deal value after negotiation"
  • AdditionalFields: Additional fields to update. Includes the following fields:

group (str): Deal's pipeline id. Deal's stage or deal.stage should belong to deal.group.

stage (str): Deal's stage id. deal.stage should belong to Deal's pipeline or deal.group.

'owner (str): Deal's owner id`.

percent (int): Deal's percent complete. Must be between 0 and 100.

fields (list): Deal's custom field values.

Example:

[

{"customFieldId": "1", "fieldValue": "Value 1", "fieldCurrency": "USD"},

{"customFieldId": "2", "fieldValue": "Value 2"}

]

Output:

  • Deal (object): Updated deal object returned by ActiveCampaign.

NOTE: ActiveCampaign may return numeric-like fields as strings.

Core fields:

  • id (string): Deal ID (input DealId is number, but response may return string)
  • title (string): Deal title
  • value (string): Deal value in cents
  • currency (string): 3-letter ISO currency code
  • status (string): Deal status (0=open, 1=won, 2=lost)
  • owner (string): Owner user ID
  • group (string): Pipeline ID
  • stage (string): Stage ID
  • account (string): Account ID
  • contact (string): Contact ID
  • percent (string): Deal win probability percentage
  • description (string): Deal description
  • cdate (string): Creation timestamp in ISO 8601 format
  • mdate (string): Last modified timestamp in ISO 8601 format
  • OriginalStatusCode (number): Original HTTP status code returned by upstream API. 0 means request did not reach upstream.
  • StatusCode (number): Unified operation status code: 200 for success/business error, -1 for parameter validation error, 500 for system/network error.
  • ErrorMessage (string): Error details. Empty string means success. When StatusCode=200 and ErrorMessage is not empty, it indicates upstream business error.

Create a Deal Note

Creates a note for a deal to record follow-up information, meeting notes, or reminders.

When to use:

  • Recording call notes or meeting outcomes
  • Logging follow-up actions or next steps
  • Documenting deal progress or customer requests

Key points:

  • Note appears in deal's activity timeline
  • Supports up to 65,535 characters
  • Cannot be empty

[!] Important: Not idempotent. Retries create duplicate notes. Include unique ID in text (e.g., '[Order-12345] Follow up next week') to identify duplicates.

Next: Update a Deal Note, Get a Deal

Input Parameters:

  • DealId: The ID of the deal to add a note to.

How to obtain

  1. Call the 'activecampaign_get_many_deals` interface.
  2. Find the target deals in the returned Deals object.
  3. Copy the id field value of deals array index object.
  • NoteText: Note content (plain text). Used to record follow-up information, meeting notes, or important reminders related to this Deal. Supports up to 65535 characters. Cannot be empty.

💡 Best Practice: To prevent duplicate notes in case of network retries, include a unique identifier at the beginning of your note text. Example: "[Order-12345] Follow up with client next week regarding contract renewal."

Output:

  • Note (object): The created note object containing complete information. Includes the following fields:
  • id (string): Note ID, can be used to update or delete the note
  • note (string): Note content text
  • cdate (string): Creation timestamp (ISO 8601 format)
  • mdate (string): Last modification timestamp (ISO 8601 format)
  • relid (number): Related deal ID
  • reltype (string): Relation type (always 'Deal')
  • userid (string): User ID who created the note

Returns empty object {} on failure.

  • OriginalStatusCode (number): The original HTTP status code returned by the upstream API. Default 0 means the request did not reach upstream (e.g., timeout). Use for debugging.
  • 0: Did not reach upstream API
  • 200/201: Upstream success
  • 4xx: Client error (400 Bad Request / 401 Unauthorized / 404 Not Found)
  • 5xx: Upstream server error
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Detailed error message if any error occurred. Empty string if the operation succeeded.
  • When StatusCode is 200 and ErrorMessage is empty: Operation fully succeeded.
  • When StatusCode is 200 and ErrorMessage is not empty: Upstream API returned a business error (e.g., deal not found, permission denied).
  • When StatusCode is -1: Describes which parameter is invalid and how to fix it.
  • When StatusCode is 500: Describes the system-level error (timeout, connection failure, etc.).

Update a Deal Note

Updates the text content of an existing deal note.

When to use:

  • Correcting typos in note text
  • Adding more information to existing notes
  • Updating call notes or meeting outcomes

Key points:

  • Requires NoteId to identify which note to update
  • Only updates note text, other fields unchanged
  • Text cannot be empty
  • Supports up to 65,535 characters

Next: Get a Deal, Create a Deal Note

Input Parameters:

  • NoteId: The ID of the deal note to update.

How to obtain

Option 1:

  1. Call the activecampaign_create_deal_note interface.
  2. Copy the id field value of the created Note object.
  • DealId: The ID of the deal the note is associated with.

How to obtain

Option 1:

  1. Call the 'activecampaign_get_many_deals` interface.
  2. Find the target deals in the returned Deals object.
  3. Copy the id field value of deals array index object.

or Option 2:

  1. Call the activecampaign_create_deal interface.
  2. Copy the id field value of the created Deal object.

Example: 8

Options:

  • NoteText: The updated text content of the note.

Output:

  • Note (object): The updated note object. Contains the following fields:
  • id (string): Note unique identifier
  • note (string): Note text content
  • relid (string): Related deal ID
  • reltype (string): Relation type (always 'Deal')
  • cdate (string): Creation timestamp
  • mdate (string): Last modification timestamp
  • userid (string): User ID who last modified the note
  • OriginalStatusCode (number): The original HTTP status code returned by the upstream API. Default 0 means the request did not reach upstream (e.g., timeout). Use for debugging.
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Detailed error message if any error occurred. Empty string if the operation succeeded.

Create an Ecommerce Customer

Creates an e-commerce customer to track purchases and revenue.

When to use:

  • Syncing customers from Shopify/WooCommerce
  • Tracking customer purchase history
  • Enabling abandoned cart automations

Key points:

  • Requires ConnectionId (from 'Create a Connection' or 'Get Many Connections')
  • ExternalId should match your platform's customer ID (e.g., Shopify ID)
  • AcceptsMarketing: 0=not opted-in, 1=opted-in
  • ExternalId+ConnectionId combination must be unique (returns 422 if exists)

Next: Create an Ecommerce Order, Update an Ecommerce Customer, Get Ecommerce Customers

Input Parameters:

  • Email: The email address of the customer.
  • ConnectionId: The ID of the ActiveCampaign connection object linking to your e-commerce platform.

How to obtain

Option 1:

  1. Call the activecampaign_get_many_connections action to get the connection ID for your e-commerce service.
  2. Find the target Connections in the returned Connections object.
  3. Copy the id field value of Connections array index object.

Option 2:

  1. Create a connection object for your e-commerce service using the activecampaign_create_connection action.
  2. Copy the id field value of the created Connection object.

Example: 8

  • ExternalId: The customer ID from your e-commerce platform (Shopify, WooCommerce, etc.). This should match the customer ID in your external system to enable proper synchronization.

How to obtain

Option 1:

  1. Call the activecampaign_get_many_connections action to get the external ID for your e-commerce service.
  2. Find the target Connections in the returned Connections object.
  3. Copy the externalid field value of Connections array index object.

Option 2:

  1. Create a connection object for your e-commerce service using the activecampaign_create_connection action.
  2. Copy the externalid field value of the created Connection object.

Example: "cust_abc123" (Shopify) or "12345" (WooCommerce)

Options:

  • AcceptsMarketing: Indication of whether customer has opted in to marketing communications. Values: 0 = not opted-in (default), 1 = opted-in. This affects whether the customer will receive marketing emails. Example: 1

Output:

  • EcommerceCustomer (object): The created ecommerce customer object with complete information. Returns empty object {} if creation failed. Core fields: id (string - customer unique identifier), email (string), connectionid (number), externalid (string), acceptsMarketing (number - 0 or 1), totalRevenue (string), totalOrders (number), totalProducts (number), avgRevenuePerOrder (string), cdate (string - creation timestamp), edate (string - last update timestamp), links (object - contains related resource URLs. Common fields: orders - string URL to customer's orders).
  • OriginalStatusCode (number): The original HTTP status code returned by ActiveCampaign API. 0 if request did not reach the API (local validation error or network error).
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Error message description, returns empty string on success. Contains user-friendly error messages for common issues (401: API key invalid, 403: permission denied, 422: invalid data, etc.).

Delete an Ecommerce Customer

Permanently deletes an ecommerce customer record from ActiveCampaign by its unique identifier. This operation cannot be undone.

When to use:

  • Clean up test data
  • Remove duplicate customer profiles
  • Handle GDPR/privacy deletion requests

Key points:

  • Only the ecommerce customer record is deleted, not the contact
  • All order history, purchase data, and ecommerce analytics will be lost
  • Abandoned cart data and product recommendations may be affected
  • Ecommerce automations based on purchase history will stop working

Input Parameters:

  • EcommerceCustomerId: An e-commerce customer is a contact who has made purchases in your online store. The ID of the e-commerce customer to delete. Must be a positive integer greater than zero. You can obtain EcommerceCustomerId by calling Get Ecommerce Customers or List Ecommerce Customers actions. Example: 12345

Output:

  • DeletedEcommerceCustomer (object): The deleted e-commerce customer object. Contains at minimum the id of the deleted customer and a deleted flag. May contain full customer details (email, connectionid, externalid) if API returns them.
  • OriginalStatusCode (number): The original HTTP status code returned by the upstream ActiveCampaign API. Default 0 means the request did not reach upstream (e.g., timeout, parameter validation error). Use for debugging.
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Error message description, returns empty string on success. Contains user-friendly error messages for common issues (401: API key invalid, 404: resource not found, etc.).

Get Ecommerce Customers

Retrieves a paginated list of e-commerce customers with filtering.

When to use:

  • List all synced customers from stores
  • Search by name or email
  • Filter by store connection

Key points:

  • Synced from connected stores (Shopify, WooCommerce, etc.)
  • Filter by email or connection ID
  • Pagination: max 100 per request

Options:

  • Limit: Number of customers to retrieve (default: 20, max: 100).
  • Offset: Offset for pagination (default: 0).
  • Search: Search query for customer names (fuzzy match). Searches across customer name fields. Example: 'John' will match 'John Doe', 'Johnny Smith', etc. Leave empty to retrieve all customers. Default: empty (no filter)
  • Email: Filter by exact email address. Must be a valid email format (e.g., customer@example.com). Use this to find a specific customer by their email. Leave empty to skip email filtering. Default: empty (no filter)
  • ConnectionId: Filter by e-commerce connection ID. This is the ID of the e-commerce integration (Shopify, WooCommerce, etc.) that can be obtained from 'Get Ecommerce Connections' action. Example: '1'. Use this to retrieve customers from a specific store. Leave empty to retrieve customers from all connections. Default: empty (no filter)

Output:

  • Customers (object): The e-commerce customers data object containing complete business data. Core Fields (Most Frequently Used): Customers[].id (string, unique customer identifier), Customers[].connectionid (string, e-commerce connection ID), Customers[].externalid (string, customer ID in external system like Shopify/WooCommerce), Customers[].email (string, customer email address), Customers[].totalRevenue (string, total revenue from this customer), Customers[].totalOrders (string, total number of orders). Additional Fields: Customers[].totalProducts (string, total products purchased), Customers[].avgRevenuePerOrder (string, average revenue per order), Customers[].totalAbandonedcarts (string, abandoned cart count), Customers[].acceptsMarketing (string, marketing consent status), Customers[].tstamp (string, last update timestamp). Pagination Metadata: TotalCount (number, total customers matching criteria). Returns empty object {Customers: [], TotalCount: 0} on failure.
  • OriginalStatusCode (number): The original HTTP status code returned by the upstream ActiveCampaign API. Default 0 means the request did not reach upstream (e.g., timeout, parameter validation error). Use for debugging. - 0: Did not reach upstream API - 200: Upstream success - 4xx: Client error (400 Bad Request / 401 Unauthorized / 403 Forbidden / 404 Not Found / 429 Rate Limit) - 5xx: Upstream server error
  • StatusCode (number): Operation status code: - 200: Success. The upstream API request completed successfully. Check ErrorMessage for business-level errors. - -1: Parameter validation error. One or more input parameters are invalid or missing. - 500: System error. Network timeout, connection failure, or response parsing error. The operation may be retried.
  • ErrorMessage (string): Detailed error message if any error occurred. Empty string if the operation succeeded. - When StatusCode is 200 and ErrorMessage is empty: Operation fully succeeded. - When StatusCode is 200 and ErrorMessage is not empty: Upstream API returned a business error (e.g., invalid connection ID, permission denied, rate limit exceeded). - When StatusCode is -1: Describes which parameter is invalid and how to fix it. - When StatusCode is 500: Describes the system-level error (timeout, connection failure, etc.).

Get an Ecommerce Customer

Retrieves a single e-commerce customer from ActiveCampaign by ID or email.

When to use:

  • Get detailed customer information by ID
  • Look up customer by email address
  • Retrieve customer purchase history and metrics
  • Check customer marketing preferences
  • Get customer data for personalization

Key points:

  • Either EcommerceCustomerId or Email must be provided
  • If searching by email with multiple matches, returns first customer
  • Returns complete customer profile including revenue and order metrics
  • Includes totalRevenue, totalOrders, and totalProducts fields

Options:

  • EcommerceCustomerId: ActiveCampaign e-commerce customer ID (numeric format). Can be obtained from Get Ecommerce Customers action or from customer creation response. Used to retrieve a specific customer by ID. Example: "123"
  • Email: Email address of the e-commerce customer to retrieve (exact match). If multiple customers share the same email, returns the first match. Must be a valid email format. Example: "customer@example.com"

Output:

  • Customer (object): The retrieved e-commerce customer data (object). Contains customer information:
  • id (string): Customer unique identifier
  • email (string): Customer email address
  • connectionid (string): E-commerce platform connection ID
  • externalid (string): External customer ID from e-commerce platform
  • totalRevenue (string): Total revenue from this customer
  • totalOrders (string): Total number of orders placed
  • totalProducts (string): Total number of products purchased
  • acceptsMarketing (string): Marketing opt-in status (0 or 1)
  • tstamp (string): Timestamp of last update

Example: See ResponseExample for full structure.

  • OriginalStatusCode (number): The original HTTP status code returned by the upstream API. Default value is 0 (request did not reach upstream). Use for debugging and troubleshooting.
  • StatusCode (number): Operation status code: 200=Success (check ErrorMessage for business errors), -1=Parameter validation error, 500=System error (may retry).
  • ErrorMessage (string): Detailed error message if any error occurred. Empty string if the operation succeeded.

Update an Ecommerce Customer

Updates an e-commerce customer's information in ActiveCampaign.

When to use:

  • Updating customer email address
  • Changing marketing opt-in status
  • Modifying external ID or connection

Key points:

  • Partial update: Only provided fields are updated
  • AcceptsMarketing: 0=not opted-in, 1=opted-in
  • ExternalId can be changed to new value
  • ConnectionId change moves customer to different connection

Next: Get an Ecommerce Customer, Create an Ecommerce Order, Get Ecommerce Customers

Input Parameters:

  • EcommerceCustomerId: The ID of the e-commerce customer to update.

How to obtain

Option 1:

  1. Call the 'activecampaign_get_ecommerce_customers` interface.
  2. Find the target Customers in the returned Customers object.
  3. Copy the id field value of Customers array index object.

Option 2:

  1. Call the activecampaign_create_ecommerce_customer interface.
  2. Copy the id field value of the created EcommerceCustomer object.

Example: 123456789

Options:

  • Email: The email address of the customer. Format: user@example.com. Example: "john.doe@company.com"
  • ExternalId: The customer ID in your external e-commerce system (e.g., Shopify customer ID, WooCommerce user ID). Used to link ActiveCampaign records with your external platform. Example: "CUST-2024-001"
  • AcceptsMarketing: Marketing opt-in status. Values:
  • 0: Not opted-in (contact will match 'Has not opted in to marketing' segment condition)
  • 1: Opted-in (contact will match 'Has opted in to marketing' segment condition)

Example: 1

  • ConnectionId: The ID of the connection object that links to the external e-commerce service (e.g., Shopify connection ID).

How to obtain

Option 1:

  1. Call the 'activecampaign_get_ecommerce_customers` interface.
  2. Find the target Customers in the returned Customers object.
  3. Copy the connection field value of Customers array index object.

Option 2:

  1. Call the activecampaign_create_ecommerce_customer interface.
  2. Copy the connection field value of the created EcommerceCustomer object.

Example: 1

  • AdditionalFields: Additional fields as key-value pairs. Used for any other customer fields not covered by the core parameters above.

⚠️ Important: Do NOT include core fields (email, externalid, connectionid, acceptsMarketing) in AdditionalFields. Use the dedicated parameters instead.

Common fields:

  • totalRevenue (string): Total revenue from this customer
  • totalOrders (string): Total number of orders
  • totalProducts (string): Total number of products purchased

Example: {"totalRevenue": "15000", "totalOrders": "12"}

Output:

  • EcommerceCustomer (object): Ecommerce customer data object containing:

EcommerceCustomer (object): Updated customer details with the following fields:

  • id (string): Unique ecommerce customer ID
  • externalid (string): Customer ID in external e-commerce system
  • connectionid (string): Connection ID linking to external service
  • email (string): Customer email address
  • acceptsMarketing (string): Marketing opt-in status ("0"=not opted-in, "1"=opted-in)
  • tstamp (string): Last update timestamp in ISO 8601 format

Returns empty object {} if operation failed.

  • OriginalStatusCode (number): The original HTTP status code returned by ActiveCampaign API. 0 if request did not reach the API (local validation error or network error).
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Error details if any, empty string otherwise.

Create an Ecommerce Order

Creates an e-commerce order to track purchases and trigger automations.

When to use:

  • Recording completed purchases from your store
  • Syncing order data from Shopify/WooCommerce
  • Triggering post-purchase automation workflows

Key points:

  • TotalPrice in cents (e.g., $45.67 = 4567)
  • ExternalId must be unique (returns 422 if duplicate)
  • Source: 1=real-time (triggers automations), 0=historical (no triggers)
  • OrderProducts array required (min 1 product)

[!] Important: ExternalId must be unique. Each retry with same ID will fail.

Next: Get Ecommerce Orders, Update an Ecommerce Order

Input Parameters:

  • ExternalId: The unique order identifier from your e-commerce system. Used for deduplication and tracking. If an order with this ID already exists, ActiveCampaign will return an error.

⚠️ IMPORTANT: You must provide either external_id OR external_checkout_id, not both and not neither.

How to obtain

Option 1:

  1. Call the activecampaign_get_many_connections action to get the external ID for your e-commerce service.
  2. Find the target Connections in the returned Connections object.
  3. Copy the externalid field value of Connections array index object.

Option 2:

  1. Create a connection object for your e-commerce service using the activecampaign_create_connection action.
  2. Copy the externalid field value of the created Connection object.

Example: "order-20240115-001"

  • Email: The email address of the customer who placed the order. Used to link the order to an ActiveCampaign contact. Example: "customer@example.com"
  • TotalPrice: The total order amount in cents, including tax and shipping. For example, $456.78 should be entered as 45678. Must be ≥ 0. Example: 45678
  • Currency: The currency code (ISO 4217 three-letter code). Common values: USD, EUR, GBP, CNY, JPY. Example: "USD"
  • ConnectionId: The ID of the ActiveCampaign connection (e-commerce integration).

How to obtain

Option 1:

  1. Call the activecampaign_get_many_connections action to get the connection ID for your e-commerce service.
  2. Find the target Connections in the returned Connections object.
  3. Copy the id field value of Connections array index object.

Option 2:

  1. Create a Connection object for your e-commerce service using the activecampaign_create_connection action.
  2. Copy the id field value of the created Connection object.

Example: 6

  • CustomerId: The id of the customer associated with this order.

How to obtain

Option 1:

  1. Call the activecampaign_get_ecommerce_customers action to get the id for your e-commerce service.
  2. Find the target Customers in the returned Customers object.
  3. Copy the id field value of Customers array index object.

Option 2:

  1. Create an EcommerceCustomer object for your e-commerce service using the activecampaign_create_ecommerce_customer action.
  2. Copy the id field value of the created EcommerceCustomer object.

Example: 9

  • ExternalCreatedDate: The date the order was placed. (e.g., "2026-03-19T00:00:00Z").

Options:

  • ExternalCheckoutId: The id of the cart in the external service. ONLY REQUIRED IF EXTERNALID IS NOT INCLUDED.

⚠️ IMPORTANT: You must provide either external_id OR external_checkout_id, not both and not neither.

  • AbandonedDate: The date the cart was abandoned. REQUIRED ONLY IF INCLUDING EXTERNALCHECKOUTID. (e.g., "2026-03-19T00:00:00Z").
  • AdditionalFields: Additional order fields. Includes the following fields:

source (int): The order source code. 0 - historical, 1 - real-time.

Only real-time orders (source = 1) will show up on your Ecommerce Dashboard and trigger

the “Makes a purchase” automation start, abandoned cart actions, customer conversions, or revenue attributions.

shippingAmount (int, optional): The total shipping amount in cents for the order.

taxAmount (int, optional): The total tax amount for the order in cents.

discountAmount (int, optional): The total discount amount for the order in cents.

orderUrl (str, optional): The URL for the order in the external service.

externalUpdatedDate (str, optional): The date the order was updated. (e.g., "2026-03-20T00:00:00Z").

shippingMethod (str, optional): The shipping method of the order. (e.g., "UPS Ground")

orderNumber (str, optional): The order number. This can be different than the externalid. (e.g., "myorder-123")

orderProducts (list, optional): The ordered products. Each orderProduct should include the following fields:

name (str): The name of the product. (e.g. "Product Golden")

price (int): The price of the product, in cents. (i.e. $456.78 => 45678). Must be greater than or equal to zero.

quantity (int): The quantity ordered.

externalid (str): The id of the product in the external service.

category (str, optional): The category of the product.

sku (str, optional): The SKU for the product

description (str, optional): The description of the product.

imageUrl (str, optional): The URL of the product image.

productUrl (str, optional): A URL linking to the product in your store.

orderDiscounts (list, optional): A list of discounts applied to the order. Each orderDiscount should include the following fields:

name (str): The discount code or name of the discount.

type (str): The type of discount, either 'order' for discount on the order, or 'shipping' for free shipping.

discountAmount (int): The amount of the discount in cents. (i.e. $456.78 => 45678). Must be greater than or equal to zero.

Example:

{
    "source": 1,
    "externalUpdatedDate": "2026-03-19T00:00:00Z",
    "orderProducts" : [
        {
            "externalid": "PROD12345",
            "name": "Pogo Stick",
            "price": 4900,
            "quantity": 1,
            "category": "Toys",
            "sku": "POGO-12",
            "description": "lorem ipsum...",
            "imageUrl": "https://example.com/product.jpg",
            "productUrl": "https://store.example.com/product12345"
        }            
    ],
    "orderDiscounts": [
      {
        "name": "1OFF",
        "type": "order",
        "discountAmount": 100
      }
    ]
}

Output:

  • Order (object): An order object containing the created e-commerce order details.

Core fields (always present):

  • id (string): The order ID in ActiveCampaign
  • externalid (string): Your external order ID
  • email (string): Customer email
  • totalPrice (string): Total price in cents
  • currency (string): Currency code
  • connectionid (string): Connection ID
  • customerid (string): Customer ID
  • source (string): Order source (0=historical, 1=real-time)
  • cdate (string): Creation date in ISO 8601 format

Optional fields:

  • orderNumber (string): Order number
  • orderUrl (string): Order URL
  • orderProducts (array): List of products
  • shippingAmount (string): Shipping cost in cents
  • taxAmount (string): Tax amount in cents

Example: {"id": "12345", "externalid": "order-001", "email": "customer@example.com", "totalPrice": "45678", "currency": "USD"}

  • OriginalStatusCode (number): The original HTTP status code returned by the upstream ActiveCampaign API. Default 0 means the request did not reach upstream (e.g., timeout, parameter validation error). Use for debugging.
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Error message description, returns empty string on success. Contains user-friendly error messages for common issues (401: API key invalid, 403: permission denied, 404: connection or customer not found, 422: invalid data or duplicate externalid).

Delete an Ecommerce Order

Permanently deletes an ecommerce order record from ActiveCampaign by its unique identifier. This operation cannot be undone.

When to use:

  • Clean up test orders
  • Remove fraudulent orders
  • Handle incorrectly synced order data

Key points:

  • Order products, revenue, and transaction details will be removed
  • Customer LTV and total spent calculations will be recalculated
  • Order-based automations and abandoned cart sequences may be affected
  • Revenue reports and ecommerce analytics will be updated

Input Parameters:

  • OrderId: The ID of the e-commerce order to delete. Must be a positive integer greater than zero.

How to get Order ID:

  • Use 'Get Many Ecommerce Orders' to list all orders
  • Use 'Search Ecommerce Orders' to find specific orders by criteria
  • Order ID can be found in the 'id' field of order objects

Example: 12345

Output:

  • DeletedEcommerceOrder (object): Order deletion result object containing details of the deleted order.

Fields:

  • deleted (bool): true if order was successfully deleted
  • orderId (string): The ID of the deleted order
  • externalid (string): External order ID (if available)
  • email (string): Customer email associated with the order (if available)
  • totalPrice (string): Order total price (if available)
  • currency (string): Order currency (if available)

Returns empty object {} if operation failed.

  • OriginalStatusCode (number): The original HTTP status code returned by the upstream ActiveCampaign API. Default 0 means the request did not reach upstream (e.g., timeout, parameter validation error). Use for debugging.
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Error message description, returns empty string on success. Contains user-friendly error messages for common issues (401: API key invalid, 404: resource not found, etc.).

Get Ecommerce Orders

Retrieves a paginated list of e-commerce orders with filtering.

When to use:

  • List all synced orders from stores
  • Filter orders by customer
  • Export order data

Key points:

  • Synced from connected stores
  • Filter by customer ID or external ID
  • Pagination: max 100 per request

Options:

  • Limit: The number of orders to retrieve per request (for pagination).
  • Offset: The offset for pagination to determine which orders to retrieve.
  • CustomerId: ActiveCampaign e-commerce customer ID (numeric format). Can be obtained via Get Ecommerce Customers API. Used to filter orders for a specific customer. Leave empty to return orders for all customers. Example: "67890"
  • ExternalId: External system customer ID (e.g., Shopify or WooCommerce customer number). Used to filter orders by third-party platform customer identifier. Use either CustomerId or ExternalId, with CustomerId taking priority. Example: "SHOP-CUST-001"

Output:

  • Orders (object): E-commerce orders data object containing:
  • orders (array): List of order objects with fields: id, externalid, orderNumber, orderDate, totalPrice, currency, email, customerid, state, products
  • total (number): Total number of orders matching the criteria
  • hasMore (boolean): Whether there are more orders available for pagination

Example: See ResponseExample for full structure.

  • OriginalStatusCode (number): The original HTTP status code returned by the upstream ActiveCampaign API. Default 0 means the request did not reach upstream (e.g., timeout, parameter validation error). Use for debugging.
  • StatusCode (number): Operation status code: 200=Success (check ErrorMessage for business errors), -1=Parameter validation error, 500=System error (may retry).
  • ErrorMessage (string): Error message if retrieving orders failed. Empty string if succeeded.

Get an Ecommerce Order

Retrieves a specific e-commerce order by ID.

When to use:

  • Get order details and line items
  • Check order status and total
  • Verify order sync from store

Key points:

  • Returns complete order with products
  • Synced from connected stores
  • Use OrderId from Get Ecommerce Orders

Input Parameters:

  • OrderId: The ID of the ecommerce order you want to retrieve. Must be a positive integer. You can obtain this ID by calling the Get_Many_Ecommerce_Orders action or from your external ecommerce platform order record. Example: 12345

Output:

  • Order (object): Business data object for ecommerce order query. Contains core fields such as id, orderNumber, email, totalPrice, currency, orderDate, connectionid, customerid, and orderProducts.
  • OriginalStatusCode (number): Original HTTP status code returned by upstream API. 0 means request did not reach upstream.
  • StatusCode (number): Unified operation status code: 200 for success/business error, -1 for parameter validation error, 500 for system/network error.
  • ErrorMessage (string): Error details. Empty string means success. When StatusCode=200 and ErrorMessage is not empty, it indicates upstream business error.

Update an Ecommerce Order

Updates an e-commerce order's information.

When to use:

  • Updating order amount or currency
  • Changing customer email
  • Modifying products in order
  • Updating shipping/tax amounts

Key points:

  • Partial update: Only provided fields are updated
  • TotalPrice in cents (50000 = $500.00)
  • Currency must be uppercase (USD, EUR, GBP)
  • OrderProducts replaces entire product list if provided
  • Use AdditionalFields for shipping, tax, discounts

Next: Get an Ecommerce Order, Get Ecommerce Orders

Input Parameters:

  • OrderId: The unique identifier of the e-commerce order to update. Must be a positive integer.

How to obtain OrderId:

  • Use Get Ecommerce Orders action to list all orders and get their IDs
  • Use Search Ecommerce Orders action to find specific orders
  • Check the order details in ActiveCampaign dashboard
  • The ID is returned when creating an order

Example: 12345

Options:

  • Email: Customer email address. Used for order identification and customer communication.

Format: Standard email format (e.g., customer@example.com)

Use case: Update customer contact information or correct email typos

Example: "customer@example.com"

  • TotalPrice: Total order amount in cents, including tax and shipping charges.

Format: Integer value in cents (e.g., $456.78 = 45678)

Range: Must be greater than or equal to zero

Use case: Update order amount after price adjustments or corrections

Example: 45678

  • Currency: Currency code for the order amount.

Format: 3-letter ISO 4217 currency code (e.g., USD, EUR, GBP, CNY)

Use case: Update currency when correcting order data or handling multi-currency scenarios

Example: "USD"

  • ExternalUpdatedDate: The date and time when the order was last updated in the external e-commerce system.

Format: ISO 8601 datetime string (e.g., 2024-01-15T10:30:00Z or 2024-01-15T10:30:00-05:00)

Use case: Sync order update timestamps from external platforms

Example: "2024-01-15T10:30:00Z"

  • OrderProducts: List of products included in the order. Each product is an object containing product details.

Product object structure:

  • externalid (string, required): Product ID in external system
  • name (string, required): Product name
  • price (int, required): Product price in cents (e.g., $29.99 = 2999)
  • quantity (int, required): Quantity ordered (must be > 0)
  • category (string, optional): Product category
  • sku (string, optional): Stock Keeping Unit
  • description (string, optional): Product description
  • imageUrl (string, optional): Product image URL
  • productUrl (string, optional): Product page URL

Use case: Update product list, add/remove items, or correct product details

Example: [{"externalid": "prod-123", "name": "Wireless Mouse", "price": 2999, "quantity": 2, "category": "Electronics"}]

  • AdditionalFields: Additional order fields as key-value pairs. Use this for less frequently updated fields or custom fields.

Common additional fields:

  • externalid (string): External order ID in your e-commerce system
  • externalcheckoutid (string): External checkout/cart ID (required if externalid not provided)
  • shippingAmount (int): Shipping cost in cents
  • taxAmount (int): Tax amount in cents
  • discountAmount (int): Discount amount in cents
  • orderUrl (string): Order details page URL
  • shippingMethod (string): Shipping method (e.g., "Standard", "Express")
  • orderNumber (string): Human-readable order number
  • orderDiscounts (array): List of discount objects with name, type, and discountAmount
  • abandoneDate (string): Cart abandonment date (ISO 8601 format)

Note: For complete field list, refer to ActiveCampaign API documentation.

Example: {"externalid": "order-2024-001", "shippingAmount": 500, "taxAmount": 3679, "orderUrl": "https://store.example.com/orders/12345"}

Output:

  • EcommerceOrder (object): The updated e-commerce order object containing the following core fields:
  • id (string): ActiveCampaign order ID
  • externalid (string): External order ID from your e-commerce system
  • email (string): Customer email address
  • totalPrice (int): Total order amount in cents (e.g., $456.78 = 45678)
  • currency (string): Currency code (3-letter ISO 4217, e.g., USD, EUR)
  • orderDate (string): Order creation date (ISO 8601 format)
  • externalUpdatedDate (string): Last update timestamp (ISO 8601 format)
  • orderUrl (string): Order details page URL
  • orderProducts (array): List of product objects in the order
  • shippingAmount (int): Shipping cost in cents
  • taxAmount (int): Tax amount in cents
  • discountAmount (int): Discount amount in cents
  • shippingMethod (string): Shipping method name
  • orderNumber (string): Human-readable order number

Returns empty object {} if update failed.

  • OriginalStatusCode (number): The original HTTP status code returned by the upstream API. Default 0 means the request did not reach upstream (e.g., timeout). Use for debugging.
  • 0: Did not reach upstream API
  • 200/201: Upstream update success
  • 401: Unauthorized (invalid API key)
  • 403: Forbidden (insufficient permissions)
  • 404: Order not found
  • 422: Validation error (invalid order data)
  • 5xx: Upstream server error
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Detailed error message if any error occurred. Empty string if the operation succeeded.
  • When StatusCode is 200 and ErrorMessage is empty: Update fully succeeded.
  • When StatusCode is 200 and ErrorMessage is not empty: Upstream API returned a business error (e.g., order not found, validation error, permission denied).
  • When StatusCode is -1: Describes which parameter is invalid and how to fix it.
  • When StatusCode is 500: Describes the system-level error (timeout, connection failure, etc.).

Get Ecommerce Order Product by ProductId

Retrieves a specific order product (line item) by ID.

When to use:

  • Get product details within an order
  • Check product price and quantity
  • Verify product sync

Key points:

  • Returns single order-product relationship
  • ProductId is the order line item ID (not catalog product ID)
  • Includes price, quantity, and SKU

Input Parameters:

  • ProductId: The ID of the ecommerce order product (order-product relationship ID, NOT the product catalog ID).

This ID represents a specific product within a specific order. Each time a product is added to an order, a unique ecomOrderProduct record is created with its own ID.

How to obtain:

  • Call List Ecommerce Order Products to get all order products
  • Call Get Order Details and extract product IDs from the order's line items

Example: 123456

Output:

  • Product (object): The ecomOrderProduct object with the following fields:
  • id (string): Unique ecomOrderProduct ID
  • orderId (string): Parent order ID
  • productId (string): Product catalog ID (reference to product master data)
  • name (string): Product name as it appears in the order
  • price (number): Unit price in cents (e.g., 9900 = $99.00)
  • quantity (number): Quantity ordered
  • category (string): Product category
  • sku (string): Stock Keeping Unit code
  • description (string): Product description
  • tstamp (string): Timestamp in ISO 8601 format with timezone (e.g., 2024-01-15T10:30:00-06:00)

Returns empty object {} if operation failed.

  • OriginalStatusCode (number): The original HTTP status code returned by ActiveCampaign API. 0 if request did not reach the API (local validation error or network error).
  • StatusCode (number): Unified status code: 200 = success, 500 = network error, -1 = parameter validation error.
  • ErrorMessage (string): Error details if any, empty string otherwise.

Get Ecommerce Order Products

Retrieves a paginated list of all order products (line items).

When to use:

  • List all order line items across orders
  • Analyze product sales
  • Export product data

Key points:

  • Returns products from all orders
  • Each record is one product in one order
  • Pagination: max 100 per request

Options:

  • Limit: Number of order products to return per page. Range: 1-100. Default: 100. Recommended: Use 20-50 for better performance. Example: 20 (retrieve 20 products per request). Use with Offset for pagination.
  • Offset: Number of order products to skip before starting to return results. Used for pagination. Default: 0 (start from first product). Example: Set Offset=20 with Limit=20 to get products 21-40. Formula: Offset = PageNumber * Limit.

Output:

  • Products (object): The e-commerce order products data object containing complete business data. Core Fields (Most Frequently Used): Products[].id (string, unique product identifier), Products[].orderid (string, associated order ID), Products[].productid (string, product ID in catalog), Products[].name (string, product name), Products[].price (string, product price), Products[].quantity (string, quantity ordered), Products[].category (string, product category). Additional Fields: Products[].sku (string, product SKU), Products[].description (string, product description), Products[].imageUrl (string, product image URL), Products[].externalid (string, external system product ID), Products[].tstamp (string, last update timestamp). Pagination Metadata: TotalCount (number, total products matching criteria). Returns empty object {Products: [], TotalCount: 0} on failure.
  • OriginalStatusCode (number): The original HTTP status code returned by the upstream ActiveCampaign API. Default 0 means the request did not reach upstream (e.g., timeout, parameter validation error). Use for debugging. - 0: Did not reach upstream API - 200: Upstream success - 4xx: Client error (400 Bad Request / 401 Unauthorized / 403 Forbidden / 404 Not Found / 429 Rate Limit) - 5xx: Upstream server error
  • StatusCode (number): Operation status code: - 200: Success. The upstream API request completed successfully. Check ErrorMessage for business-level errors. - -1: Parameter validation error. One or more input parameters are invalid or missing. - 500: System error. Network timeout, connection failure, or response parsing error. The operation may be retried.
  • ErrorMessage (string): Detailed error message if any error occurred. Empty string if the operation succeeded. - When StatusCode is 200 and ErrorMessage is empty: Operation fully succeeded. - When StatusCode is 200 and ErrorMessage is not empty: Upstream API returned a business error (e.g., invalid order ID, permission denied, rate limit exceeded). - When StatusCode is -1: Describes which parameter is invalid and how to fix it. - When StatusCode is 500: Describes the system-level error (timeout, connection failure, etc.).

Get Ecommerce Order Products by OrderId

Retrieves all products (line items) for a specific order.

When to use:

  • Get all items in an order
  • Check order composition
  • Verify order fulfillment

Key points:

  • Returns products for one specific order
  • Includes price, quantity, and SKU
  • Supports pagination

Input Parameters:

  • OrderId: The unique identifier of the ecommerce order to retrieve products from. Must be a positive integer greater than zero.

How to obtain OrderId:

  • Use Get Ecommerce Orders action to list all orders and get their IDs
  • Use Search Orders action to find specific orders
  • Check the order details in ActiveCampaign dashboard

Example: 12345

Options:

  • Limit: Number of products to return per page. Controls pagination page size.

Range: 1-100

Default: 100

Recommended: 20-50 for better performance

Example: 20 (returns up to 20 products per request)

  • Offset: Number of products to skip before starting to return results. Used for pagination.

Default: 0 (start from the first product)

Pagination Examples:

  • Page 1: Offset=0, Limit=20 (products 1-20)
  • Page 2: Offset=20, Limit=20 (products 21-40)
  • Page 3: Offset=40, Limit=20 (products 41-60)

Formula: Offset = (PageNumber - 1) × Limit

Output:

  • Products (object-array): A list of order product objects. Each product contains:
  • id (string): Unique product ID
  • orderid (string): Associated order ID
  • productid (string): Product identifier
  • name (string): Product name
  • price (string): Unit price
  • quantity (string): Quantity ordered
  • category (string): Product category
  • sku (string): Stock keeping unit
  • description (string): Product description
  • imageUrl (string): Product image URL
  • externalid (string): External system ID
  • tstamp (string): Timestamp

Returns empty array [] if no products found or on error.

  • OriginalStatusCode (number): The original HTTP status code returned by the upstream API. Default 0 means the request did not reach upstream (e.g., timeout). Use for debugging.
  • 0: Did not reach upstream API
  • 200: Upstream request success
  • 401: Unauthorized (invalid API key)
  • 403: Forbidden (insufficient permissions)
  • 404: Order not found
  • 429: Rate limit exceeded
  • 5xx: Upstream server error
  • StatusCode (number): Operation status code:
  • 200: Success. The upstream API request completed successfully. Check ErrorMessage for business-level errors.
  • -1: Parameter validation error. One or more input parameters are invalid or missing.
  • 500: System error. Network timeout, connection failure, or response parsing error. The operation may be retried.
  • ErrorMessage (string): Detailed error message if any error occurred. Empty string if the operation succeeded.
  • When StatusCode is 200 and ErrorMessage is empty: Request fully succeeded.
  • When StatusCode is 200 and ErrorMessage is not empty: Upstream API returned a business error (e.g., order not found, permission denied, rate limit exceeded).
  • When StatusCode is -1: Describes which parameter is invalid and how to fix it.
  • When StatusCode is 500: Describes the system-level error (timeout, connection failure, etc.).

Create a List

Creates a contact list for organizing email or SMS marketing campaigns.

When to use:

  • Segmenting contacts by interest or behavior
  • Setting up newsletter or campaign lists
  • Organizing VIP customers or specific audiences

Key points:

  • Idempotent: Returns existing list if stringid already exists (safe for retries)
  • Stringid must be unique and URL-safe (lowercase, numbers, hyphens)
  • Channel: 'email' (default) or 'sms'

Next: Add Contact to List, Get Many Lists

Input Parameters:

  • Name: List display name. This is the name that will be shown in your ActiveCampaign dashboard. Example: "VIP Customer List"
  • StringId: URL-safe unique identifier for the list (lowercase letters, numbers, and hyphens only). This will be used in URLs and API calls. Example: "vip-customer-list"
  • SenderUrl: Your website URL. This helps contacts recognize your brand. Example: "https://example.com"
  • SenderReminder: A reminder text explaining why contacts are on this list. This appears in email footers to help contacts remember how they subscribed. Example: "You subscribed to our VIP newsletter at our website"

Options:

  • Channel: List type for campaign delivery. Use "email" for email marketing campaigns, "sms" for SMS campaigns. Defaults to "email" if not specified. Common values: email, sms. Example: "email"

Output:

  • List (object): A list object containing the created list details.

Core fields (always present):

  • id (string): The list ID
  • name (string): List display name
  • stringid (string): URL-safe identifier
  • sender_url (string): Website URL
  • sender_reminder (string): Subscription reminder text
  • cdate (string): Creation date in ISO 8601 format
  • user (string): Creator user ID

Optional fields:

  • channel (string): List type ("email" or "sms")
  • subscriber_count (string): Number of subscribers

Example: {"id": "123", "name": "VIP Customer List", "stringid": "vip-customer-list", "sender_url": "https://example.com", "channel": "email"}

  • OriginalStatusCode (number): The original HTTP status code returned by the upstream ActiveCampaign API. Default 0 means the request did not reach upstream (e.g., timeout, parameter validation error). Use for debugging.
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Error message description, returns empty string on success. Contains user-friendly error messages for common issues (401: API key invalid, 403: permission denied, 422: invalid data or duplicate stringid, 429: rate limit exceeded).

Delete a List

Permanently deletes a contact list from ActiveCampaign by its unique identifier. This operation cannot be undone.

When to use:

  • Clean up unused lists
  • Remove test lists
  • Reorganize list structure

Key points:

  • Deletion is permanent and irreversible
  • Contacts on the list will NOT be deleted, only unsubscribed
  • List-specific settings, automations, and campaigns may be affected
  • List subscription history and analytics data will be lost

Input Parameters:

  • ListId: ID of the list to delete.

How to obtain

Option 1:

  1. Call the 'activecampaign_get_many_lists` interface.
  2. Find the target Lists in the returned Lists object.
  3. Copy the id field value of Lists array index object.

or Option 2:

  1. Call the activecampaign_create_list interface.
  2. Copy the id field value of the created List object.

Example: 123

Output:

  • DeletedList (object): Deletion result object containing the operation outcome.

Fields:

  • deleted (boolean): true if the list was successfully deleted, false otherwise.

Example: {"deleted": true}

  • OriginalStatusCode (number): The original HTTP status code returned by the upstream ActiveCampaign API. Default 0 means the request did not reach upstream (e.g., timeout, parameter validation error). Use for debugging.
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Error message description, returns empty string on success. Contains user-friendly error messages for common issues (401: API key invalid, 404: resource not found, etc.).

Get Many Lists

Retrieves a paginated list of contact lists with filtering.

When to use:

  • List all subscriber lists
  • Search lists by name
  • Get list IDs for contact operations

Key points:

  • Filter by name with multiple operators (contains, equals, etc.)
  • Sort by name or weight
  • Pagination: max 100 per request

Options:

  • Limit: Number of lists to retrieve per request. Must be >= 1, maximum 100. Default: 100.
  • Offset: Pagination offset (starting position). Minimum value is 0. Use with Limit to paginate through results. Example: Offset=0 for first page, Offset=100 for second page (if Limit=100).
  • Name: Filter by list name. Supports partial matching when used with FilterOperator. Example: 'Newsletter' will match 'Monthly Newsletter', 'Newsletter Subscribers', etc.
  • FilterOperator: Filter matching mode for list names. Common use cases: 'contains' for fuzzy search (recommended for beginners), 'eq' for exact lookup. Supported values: 'eq' (equals - exact match, use when you know the full list name. Example: Name='Newsletter Subscribers', FilterOperator='eq' returns only lists with exactly this name), 'contains' (partial match - substring match, use for fuzzy search. Example: Name='Newsletter', FilterOperator='contains' returns 'Monthly Newsletter', 'Newsletter Subscribers', etc.), 'starts_with' (prefix match - name begins with keyword. Example: Name='VIP', FilterOperator='starts_with' returns 'VIP Customers', 'VIP Members', but not 'Super VIP'), 'neq' (not equals - exclude specific list. Example: Name='Test', FilterOperator='neq' returns all lists except 'Test'), 'lt', 'lte', 'gt', 'gte' (alphabetical comparison, rarely used for list names). Default: 'contains' (partial match). Usage tip: For most search scenarios, use 'contains' for flexible matching or 'eq' for precise lookup.
  • FilterOrder: Sort order by list name. Supported values: 'asc' (ascending, A-Z), 'desc' (descending, Z-A), 'weight' (by importance/weight). Default: 'asc'. Example: Use 'desc' to show lists in reverse alphabetical order.

Output:

  • Lists (object): The lists data object containing complete business data. Core Fields (Most Frequently Used): Lists[].id (string, unique list identifier for subsequent operations), Lists[].name (string, list name like 'Newsletter Subscribers'), Lists[].stringid (string, URL-friendly unique identifier), Lists[].cdate (string, creation date ISO 8601), Lists[].udate (string, last update date). Sender Configuration (For Email Campaigns): Lists[].sender_name (string, sender display name), Lists[].sender_city, Lists[].sender_state, Lists[].sender_country (string, sender location info), Lists[].sender_url (string, sender website). Advanced/Low-Frequency Fields: Lists[].p_use_tracking, Lists[].p_use_analytics_read, Lists[].p_use_captcha (string, tracking/analytics settings), Lists[].twitter_token, Lists[].twitter_token_secret (string, Twitter integration), Lists[].private (string, privacy setting), Lists[].subscription_notify, Lists[].unsubscription_notify (string, notification settings), Lists[].links (object, related API links). Pagination Metadata: Pagination.limit (number, items per page), Pagination.offset (number, starting position), Pagination.total (number), total items), Pagination.hasMore (bool, whether more items exist). Returns empty object {} on failure.
  • OriginalStatusCode (number): The original HTTP status code returned by the upstream API. Default 0 means the request did not reach upstream (e.g., timeout). Use for debugging. - 0: Did not reach upstream API - 200: Upstream success - 4xx: Client error (400 Bad Request / 401 Unauthorized / 403 Forbidden / 404 Not Found) - 5xx: Upstream server error
  • StatusCode (number): Operation status code: - 200: Success. The upstream API request completed successfully. Check ErrorMessage for business-level errors. - -1: Parameter validation error. One or more input parameters are invalid or missing. - 500: System error. Network timeout, connection failure, or response parsing error. The operation may be retried.
  • ErrorMessage (string): Detailed error message if any error occurred. Empty string if the operation succeeded. - When StatusCode is 200 and ErrorMessage is empty: Operation fully succeeded. - When StatusCode is 200 and ErrorMessage is not empty: Upstream API returned a business error (e.g., invalid filter, permission denied). - When StatusCode is -1: Describes which parameter is invalid and how to fix it. - When StatusCode is 500: Describes the system-level error (timeout, connection failure, etc.).

Get a List

Retrieves details of a specific contact list by ID.

When to use:

  • Verify list exists before adding contacts
  • Get list configuration details
  • Check list metadata and settings

Key points:

  • Returns complete list metadata
  • Use ListId from Get Many Lists
  • Includes sender info and privacy settings

Input Parameters:

  • ListId: ID of the list to retrieve. This is a numeric ID (e.g., 123) that can be obtained from the 'Get Many Lists' or 'Search Lists' action. Example: 123

Output:

  • List (object): The retrieved list object containing complete list data. Core Fields: id (string, unique list identifier), name (string, list name like 'Newsletter Subscribers'), stringid (string, URL-friendly identifier), cdate (string, creation date ISO 8601), udate (string, last update date), user (string, owner user ID). Sender Configuration: sender_url (string, sender website), sender_reminder (string, subscription reminder text). Settings: send_last_broadcast (string, last broadcast date), carboncopy (string, CC email), subscription_notify (string, subscription notification email), unsubscription_notify (string, unsubscription notification email). Related Resources: links (object, related API endpoints). Returns empty object {} on failure.
  • OriginalStatusCode (number): The original HTTP status code returned by the upstream ActiveCampaign API. Default 0 means the request did not reach upstream (e.g., timeout, parameter validation error). Use for debugging. - 0: Did not reach upstream API - 200: Upstream success - 4xx: Client error (400 Bad Request / 401 Unauthorized / 403 Forbidden / 404 Not Found) - 5xx: Upstream server error
  • StatusCode (number): Operation status code: - 200: Success. The upstream API request completed successfully. Check ErrorMessage for business-level errors. - -1: Parameter validation error. One or more input parameters are invalid or missing. - 500: System error. Network timeout, connection failure, or response parsing error. The operation may be retried.
  • ErrorMessage (string): Detailed error message if any error occurred. Empty string if the operation succeeded. - When StatusCode is 200 and ErrorMessage is empty: Operation fully succeeded. - When StatusCode is 200 and ErrorMessage is not empty: Upstream API returned a business error (e.g., list not found, permission denied). - When StatusCode is -1: Describes which parameter is invalid and how to fix it. - When StatusCode is 500: Describes the system-level error (timeout, connection failure, etc.).

Create a Pipeline

Creates a pipeline (deal group) for organizing deals through sales stages.

When to use:

  • Setting up sales process workflow
  • Creating department-specific deal pipelines
  • Building multi-stage sales funnels

Key points:

  • Title can duplicate (multiple pipelines with same name allowed)
  • Currency (usd, eur, gbp, cny) - lowercase auto-accepted
  • AllGroups/AllUsers (1=all, 0=specific) control permissions
  • AutoAssign: 0=disabled, 1=round robin, 2=by value

[!] Important: No duplicate protection. Each retry creates new pipeline.

Next: Create a Stage, Create a Deal, Get Many Pipelines

Input Parameters:

  • Title: Pipeline name. This is the display name for the pipeline. Example: "Sales Pipeline Q1 2024"
  • Currency: Currency code (lowercase). Common values: usd, eur, gbp, cny. For the complete list, refer to ActiveCampaign documentation. Example: "usd"

Options:

  • AllGroups: Whether all user groups have permission to manage this pipeline. Value: 1 = Allow all groups; 0 = Only allow groups specified in the Groups parameter (via AdditionalFields). Note: ActiveCampaign API uses numeric values (1/0) instead of boolean (true/false). Default: 1
  • AllUsers: Whether new deals are auto-assigned to all users. Value: 1 = Assign to all users; 0 = Only assign to users specified in the Users parameter (via AdditionalFields). Note: ActiveCampaign API uses numeric values (1/0) instead of boolean (true/false). Default: 1
  • AutoAssign: Auto-assign strategy. Value: 0 = Disabled (no auto-assignment); 1 = Round Robin (distribute deals evenly); 2 = By deal value (high-value deals to senior sales reps). Note: ActiveCampaign API uses numeric values (0/1/2) instead of string enums. Default: 0
  • Users: List of user ids to auto-assign new deals to unless auto-assign option is disabled.

Example: ["3", "7", "12"]

  • Groups: List of user group ids to allow managing this pipeline.

Example: ["1", "2"]

Output:

  • Pipeline (object): The created pipeline object containing complete information. Includes the following fields:
  • id (string): Pipeline ID, can be used in Create Deal API
  • title (string): Pipeline name
  • currency (string): Currency code
  • allgroups (number): User group permission setting (1=All groups, 0=Specific groups)
  • allusers (number): User assignment setting (1=All users, 0=Specific users)
  • autoassign (number): Auto-assign strategy (0=Disabled, 1=Round Robin, 2=By value)
  • cdate (string): Creation timestamp (ISO 8601 format)
  • udate (string): Last update timestamp (ISO 8601 format)
  • stages (array): Pipeline stages (empty array for new pipelines)

Returns empty object {} on failure.

  • OriginalStatusCode (number): The original HTTP status code returned by the upstream API. Default 0 means the request did not reach upstream (e.g., timeout). Use for debugging.
  • 0: Did not reach upstream API
  • 200/201: Upstream success
  • 4xx: Client error (400 Bad Request / 401 Unauthorized / 404 Not Found)
  • 5xx: Upstream server error
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Detailed error message if any error occurred. Empty string if the operation succeeded.
  • When StatusCode is 200 and ErrorMessage is empty: Operation fully succeeded.
  • When StatusCode is 200 and ErrorMessage is not empty: Upstream API returned a business error (e.g., resource not found, permission denied).
  • When StatusCode is -1: Describes which parameter is invalid and how to fix it.
  • When StatusCode is 500: Describes the system-level error (timeout, connection failure, etc.).

Delete a Pipeline

Permanently deletes a deal pipeline from ActiveCampaign by its unique identifier. This operation cannot be undone.

When to use:

  • Clean up unused sales processes
  • Remove test pipelines
  • Reorganize deal management structure

Key points:

  • Deletion is permanent and irreversible
  • All stages within this pipeline will be automatically deleted
  • Deals in this pipeline may be affected or orphaned
  • Move all deals to another pipeline before deletion

Input Parameters:

  • PipelineId: The ID of the pipeline to delete. Must be a valid pipeline ID (positive integer).

How to obtain

Option 1:

  1. Call the 'activecampaign_get_many_pipelines` interface.
  2. Find the target DealGroups in the returned Pipelines object.
  3. Copy the id field value of DealGroups array index object.

or Option 2:

  1. Call the activecampaign_create_pipeline interface.
  2. Copy the id field value of the created Pipeline object.

Example: 12345

Output:

  • DeletedPipeline (object): The deletion operation result object. Contains 'Deleted' (bool) indicating whether the pipeline was successfully deleted. Returns empty object {} if operation failed.
  • OriginalStatusCode (number): The original HTTP status code returned by the upstream ActiveCampaign API. Default 0 means the request did not reach upstream (e.g., timeout, parameter validation error). Use for debugging.
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Error message description, returns empty string on success. Contains user-friendly error messages for common issues (401: API key invalid, 404: resource not found, etc.).

Get Many Pipelines

Retrieves a list of sales pipelines with filtering and sorting.

When to use:

  • List all sales pipelines
  • Find pipeline by name
  • Get pipeline IDs for deal creation

Key points:

  • Filter by title or stage presence
  • Sort by title or popularity
  • Returns pipeline IDs and stage counts

Options:

  • FilterTitle: Filter by pipeline's title. Uses partial matching (e.g., 'Contact' matches 'In Contact', 'To Contact', and 'Contact Pipeline'). Leave empty to return all pipelines. Example: \"Sales\"
  • FilterStage: Filter by whether pipelines have deal stages (stages are the steps in a sales process, like 'Qualified', 'Proposal', 'Negotiation'). Values:
  • 1: Only pipelines with at least one stage
  • 0: Only pipelines without stages
  • -1 or leave empty: Return all pipelines (default)

Example: -1

  • OrderTitle: Order by pipeline's title. Can be either ASC (A to Z) or DESC (Z to A). Default is ASC. Example: \"ASC\"
  • OrderPopular: Order by pipeline's popularity (based on usage frequency in deals). Can be either ASC (least popular first) or DESC (most popular first). Default is ASC. Example: \"ASC\"
  • Limit: Maximum number of pipelines to return per request. Default is 100. ActiveCampaign supports up to 100 per page.
  • Offset: Number of pipelines to skip. Use with Limit for pagination. Example: Offset=0 returns first page, Offset=100 returns second page.

Output:

  • Pipelines (object): The pipelines data object containing:

DealGroups (array): List of pipeline objects, each containing:

  • id (string): Pipeline unique identifier
  • title (string): Pipeline name
  • currency (string): Currency code (e.g., usd, eur)
  • allGroups (string): Whether pipeline is visible to all user groups (0=no, 1=yes)
  • autoassign (string): Whether deals are auto-assigned (0=no, 1=yes)
  • cdate (string): Creation date in ISO 8601 format (e.g., 2024-01-15T10:30:00-06:00)
  • udate (string): Last update date in ISO 8601 format

Total (number): Total count of pipelines matching the filter

Access Paths:

  • First pipeline ID: Pipelines.DealGroups[0].id
  • Total count: Pipelines.Total

Returns empty object {} if operation failed.

  • OriginalStatusCode (number): The original HTTP status code returned by ActiveCampaign API. 0 if request did not reach the API (local validation error or network error).
  • StatusCode (number): Unified status code: 200 = success, 500 = network error, -1 = parameter validation error.
  • ErrorMessage (string): Error details if any, empty string otherwise.

Get a Pipeline

Retrieves a sales pipeline with its stages by ID.

When to use:

  • Get pipeline stages before creating deals
  • Verify pipeline configuration
  • Check stage IDs for deal creation

Key points:

  • Returns pipeline with all stages
  • Each stage has id, title, and order
  • Use PipelineId from Get Many Pipelines

Input Parameters:

  • PipelineId: ID of the pipeline to retrieve. Must be greater than zero.

How to get Pipeline ID:

  • Call Get_Many_Pipelines action to retrieve all pipelines
  • Or find it in ActiveCampaign dashboard: Settings → Pipelines → Click a pipeline → Check the URL (e.g., .../dealGroups/edit/123, where 123 is the Pipeline ID)

Example: 1

Output:

  • Pipeline (object): Pipeline data object containing: 'DealGroup' (object with id, title, currency, stages array, allgroups, allusers, autoassign fields). Each stage has id, title, and order. Returns empty object {} if operation failed.
  • OriginalStatusCode (number): The original HTTP status code returned by ActiveCampaign API. 0 if request did not reach the API (local validation error or network error).
  • StatusCode (number): Unified status code: 200 = success, 500 = network error, -1 = parameter validation error.
  • ErrorMessage (string): Error details if any, empty string otherwise.

Update a Pipeline

Updates an existing pipeline's configuration.

When to use:

  • Changing pipeline name or currency
  • Modifying permission settings
  • Updating auto-assignment rules

Key points:

  • Partial update: Only provided fields are updated
  • At least one field required
  • Currency must be lowercase (usd, eur, gbp, cny)
  • AllGroups/AllUsers: 1=all, 0=specific
  • AutoAssign: 0=disabled, 1=round robin, 2=by value

Next: Update a Stage, Get Many Pipelines, Create a Stage

Input Parameters:

  • PipelineId: The ID of the pipeline to update.

How to obtain

Option 1:

  1. Call the 'activecampaign_get_many_pipelines` interface.
  2. Find the target DealGroups in the returned Pipelines object.
  3. Copy the id field value of DealGroups array index object.

or Option 2:

  1. Call the activecampaign_create_pipeline interface.
  2. Copy the id field value of the created Pipeline object.

Example: 8

Options:

  • Title: Pipeline name/title. Example: 'Sales Pipeline Q1 2024'
  • Currency: Currency code for deals in this pipeline. Common values: 'usd', 'eur', 'gbp', 'cny', 'jpy'. Example: 'usd'
  • AllGroups: Whether all user groups have permission to manage this pipeline. Must be 0 or 1.

1 = All user groups can manage this pipeline.

0 = Only user groups in additional_fields['groups'] can manage this pipeline.

Default: 1

  • AllUsers: Whether new deals get auto-assigned to all users. Must be 0 or 1.

1 = New deals are auto-assigned to all users (unless auto-assign is disabled).

0 = New deals are auto-assigned only to users.

Default: 0

  • AutoAssign: Deal auto-assignment strategy. Must be 0, 1, or 2.

0 = Auto-assign is disabled.

1 = Round Robin method (distribute deals evenly).

2 = By deal value (high-value deals to senior sales reps).

Default: 1

  • Users: List of user ids to auto-assign new deals to unless auto-assign option is disabled.

Example: ["3", "7", "12"]

  • Groups: List of user group ids to allow managing this pipeline.

Example: ["1", "2"]

Output:

  • Pipeline (object): The updated pipeline object. Contains the following fields:

id (int): The deal group id.

title (str): The title of the pipeline.

allgroups (int): Whether all user groups have permission to manage this pipeline.

allusers (int): Whether new deals get auto-assigned to all users.

autoassign (int): Deal auto-assign option.

currency (str): The currency of the pipeline (lowercase).

cdate (str): The date the pipeline was created.

udate (str): The date the pipeline was last updated.

links (dict): Links to related resources.

win_probability_initialize_date (str): The date the pipeline's win probability was initialized.

  • OriginalStatusCode (number): The original HTTP status code returned by the upstream API. Default 0 means the request did not reach upstream (e.g., timeout). Use for debugging.
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Detailed error message if any error occurred. Empty string if the operation succeeded.

Create a Stage

Creates a stage (step) in a pipeline to represent sales process phases.

When to use:

  • Building custom pipeline workflow
  • Adding new step to existing pipeline
  • Customizing sales process stages

Key points:

  • GroupId is the pipeline ID (get from 'Get Many Pipelines')
  • Order controls position (lower numbers first, empty = placed at end)
  • Color is 6-char HEX code without # (default: 3f3f3f)
  • Same pipeline can have multiple stages with same title

Next: Create a Deal, Update a Stage, Get Many Stages

Input Parameters:

  • Title: Stage name. This identifies the stage in your sales pipeline. Example: "Proposal Sent", "Negotiation", "Closed Won"
  • PipelineId: Pipeline ID (also called group ID in the API). This specifies which pipeline this stage belongs to.

How to obtain

Option 1:

  1. Call the 'activecampaign_get_many_pipelines` interface.
  2. Find the target DealGroups in the returned Pipelines object.
  3. Copy the group field value of DealGroups array index object.

or Option 2:

  1. Call the activecampaign_create_pipeline interface.
  2. Copy the id field value of the created Pipeline object.

Example: 8

Options:

  • Order: Stage position in the pipeline (lower numbers appear first). Leave empty to automatically place at the end. Example: 2
  • Color: Stage color as 6-character HEX code (without # symbol). This color will be displayed in the pipeline view. Defaults to "3f3f3f" (dark gray). Example: "3f8cff" (blue)
  • Width: Stage column width in pixels. This controls how wide the stage column appears in the pipeline view. Defaults to 280. Example: 300
  • Reorder: Whether to recalculate order numbers for all stages in the pipeline after creation. 0 = keep existing order (default), 1 = recalculate all stage orders. Use 1 when you want to ensure consistent ordering across all stages. If multiple stages have the same order value, the stage with the highest ID will be placed first. Example: 0
  • AdditionalFields: Additional configuration fields for deal card display and sorting. Use this to customize how deals appear in this stage.

Common additional fields:

  • dealOrder (string): Deal sorting rule. Format: "field_name DIRECTION". Direction can be "ASC" or "DESC". Defaults to "next-action DESC". Example: "value ASC"
  • cardRegion1 (string): Content shown in upper-left corner of deal cards. Defaults to "title". Common values: title, value, next-action
  • cardRegion2 (string): Content shown in upper-right corner of deal cards. Defaults to "next-action"
  • cardRegion3 (string): Whether to show avatar in deal cards. Values: "show-avatar" (default) or "hide-avatar"
  • cardRegion4 (string): Content shown next to avatar. Defaults to "contact-fullname-orgname"
  • cardRegion5 (string): Content shown in lower-right corner of deal cards. Defaults to "value"

Example: {"dealOrder": "value ASC", "cardRegion1": "value", "cardRegion3": "hide-avatar"}

Output:

  • Stage (object): A stage object containing the created stage details.

Core fields (always present):

  • id (string): The stage ID
  • title (string): Stage name
  • group (string): Pipeline ID
  • order (string): Stage position in pipeline
  • color (string): Stage color (6-character HEX code)
  • width (string): Column width in pixels
  • cdate (string): Creation date in ISO 8601 format

Optional fields:

  • dealOrder (string): Deal sorting rule
  • cardRegion1-5 (string): Deal card display configuration

Example: {"id": "42", "title": "Proposal Sent", "group": "3", "order": "2", "color": "3f8cff", "width": "300"}

  • OriginalStatusCode (number): The original HTTP status code returned by the upstream ActiveCampaign API. Default 0 means the request did not reach upstream (e.g., timeout, parameter validation error). Use for debugging.
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Error message description, returns empty string on success. Contains user-friendly error messages for common issues (401: API key invalid, 403: permission denied, 404: pipeline not found, 422: invalid data).

Delete a Stage

Permanently deletes a pipeline stage from ActiveCampaign by its unique identifier. This operation cannot be undone.

When to use:

  • Clean up unused stages
  • Simplify sales processes
  • Remove test stages

Key points:

  • Deletion is permanent and irreversible
  • Deals currently in this stage may be affected or orphaned
  • Stage-specific automations and triggers will stop working
  • Move all deals to another stage before deletion

Input Parameters:

  • StageId: The unique identifier of the deal stage (sales pipeline phase) to delete. Must be a positive integer greater than zero.

How to obtain

Option 1:

  1. Call the 'activecampaign_get_many_stages` interface.
  2. Find the target DealStages in the returned Stages object.
  3. Copy the id field value of DealStages array index object.

or Option 2:

  1. Call the activecampaign_create_stage interface.
  2. Copy the id field value of the created Stage object.

Example: 123

Output:

  • DeletedStage (object): The deletion result object containing business data. Includes the following field:
  • Deleted (bool): Indicates whether the stage was successfully deleted. Returns true if the stage existed and was deleted, or if the stage did not exist (404 - idempotent behavior). Returns false if deletion failed due to permission issues or other errors.

Returns empty object {} on failure.

  • OriginalStatusCode (number): The original HTTP status code returned by the upstream ActiveCampaign API. Default 0 means the request did not reach upstream (e.g., timeout, parameter validation error). Use for debugging.
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Error message description, returns empty string on success. Contains user-friendly error messages for common issues (401: API key invalid, 404: resource not found, etc.).

Get Many Stages

Retrieves a paginated list of deal stages with filtering.

When to use:

  • List all pipeline stages
  • Filter stages by pipeline
  • Get stage IDs for deal operations

Key points:

  • Filter by title or pipeline ID
  • Sort by title
  • Pagination: max 100 per request

Options:

  • Limit: Number of deal stages to retrieve per request. Must be >= 1, maximum 100. Default: 100.
  • Offset: Pagination offset (starting position). Minimum value is 0. Use with Limit to paginate through results. Example: Offset=0 for first page, Offset=100 for second page (if Limit=100).
  • FilterTitle: Filter by deal stage titles. Returns stages whose titles partially match this value (case-insensitive). Example: 'Qualified' will match 'Qualified Lead', 'Pre-Qualified', etc.
  • FilterGroup: Filter by pipeline ID (also called group ID). Returns only stages belonging to the specified pipeline/sales process.

What is a Pipeline? A pipeline (or sales process) is a collection of stages that represent your sales workflow, e.g., 'Sales Pipeline', 'Onboarding Pipeline'.

How to obtain Pipeline ID:

  • Use Get Many Pipelines action to list all pipelines and get their IDs
  • Check the pipeline URL in ActiveCampaign dashboard (e.g., /pipelines/1)

Example: '1' or '5'

  • OrderTitle: Sort order by stage title alphabetically. ASC (ascending, A-Z) or DESC (descending, Z-A). Default: ASC.

Examples:

  • ASC: 'Closed Won' → 'Negotiation' → 'Qualified'
  • DESC: 'Qualified' → 'Negotiation' → 'Closed Won'

Output:

  • Stages (object): The deal stages data object containing complete business data. Includes the following fields:
  • DealStages (array): List of deal stage objects. Each stage contains: id (string, unique identifier), title (string, stage name like 'Qualified' or 'Closed Won'), group (string, pipeline ID), order (number, display order), cardRegion1 (string), cardRegion2 (string), cardRegion3 (string), cardRegion4 (string), cardRegion5 (string), color (string, hex color code), width (number), cdate (string, creation date), udate (string, last update date).
  • Pagination (object): Pagination metadata containing: limit (number, items per page), offset (number, starting position), total (number), total items matching criteria), hasMore (bool, whether more items exist).

Returns empty object {} on failure.

  • OriginalStatusCode (number): The original HTTP status code returned by the upstream API. Default 0 means the request did not reach upstream (e.g., timeout). Use for debugging.
  • 0: Did not reach upstream API
  • 200: Upstream success
  • 4xx: Client error (400 Bad Request / 401 Unauthorized / 403 Forbidden / 404 Not Found)
  • 5xx: Upstream server error
  • StatusCode (number): Operation status code:
  • 200: Success. The upstream API request completed successfully. Check ErrorMessage for business-level errors.
  • -1: Parameter validation error. One or more input parameters are invalid or missing.
  • 500: System error. Network timeout, connection failure, or response parsing error. The operation may be retried.
  • ErrorMessage (string): Detailed error message if any error occurred. Empty string if the operation succeeded.
  • When StatusCode is 200 and ErrorMessage is empty: Operation fully succeeded.
  • When StatusCode is 200 and ErrorMessage is not empty: Upstream API returned a business error (e.g., invalid filter, permission denied).
  • When StatusCode is -1: Describes which parameter is invalid and how to fix it.
  • When StatusCode is 500: Describes the system-level error (timeout, connection failure, etc.).

Get a Stage

Retrieves details of a specific deal stage by ID.

When to use:

  • Get stage configuration details
  • Verify stage exists before moving deals
  • Check stage order and settings

Key points:

  • Returns stage with pipeline association
  • Includes display order and card layout
  • Use StageId from Get Many Stages

Input Parameters:

  • StageId: Deal stage's unique identifier (must be greater than zero).

How to obtain

Option 1:

  1. Call the 'activecampaign_get_many_stages` interface.
  2. Find the target DealStages in the returned Stages array.
  3. Copy the group field value of DealStages array index object.

or Option 2:

  1. Call the activecampaign_create_stage interface.
  2. Copy the id field value of the created Stage object.

Example: 12

Output:

  • Stage (object): The retrieved deal stage data object. Contains the following core fields: id (string, stage unique identifier), title (string, stage name like 'Qualification' or 'Proposal'), group (string, pipeline group ID this stage belongs to), order (string, display order within the pipeline), cardRegion1-5 (string, card layout configuration for deal cards), cdate (string, creation timestamp in ISO 8601 format), udate (string, last update timestamp in ISO 8601 format). Returns empty object {} on failure.
  • OriginalStatusCode (number): The original HTTP status code returned by the upstream ActiveCampaign API. Default 0 means the request did not reach upstream (e.g., timeout, parameter validation error). Use for debugging. - 0: Did not reach upstream API - 200/201: Upstream success - 4xx: Client error (400 Bad Request / 401 Unauthorized / 403 Forbidden / 404 Not Found / 429 Rate Limit) - 5xx: Upstream server error
  • StatusCode (number): Operation status code: - 200: Success. The upstream API request completed successfully. Check ErrorMessage for business-level errors. - -1: Parameter validation error. One or more input parameters are invalid or missing. - 500: System error. Network timeout, connection failure, or response parsing error. The operation may be retried.
  • ErrorMessage (string): Detailed error message if any error occurred. Empty string if the operation succeeded. - When StatusCode is 200 and ErrorMessage is empty: Operation fully succeeded. - When StatusCode is 200 and ErrorMessage is not empty: Upstream API returned a business error (e.g., stage not found, permission denied). - When StatusCode is -1: Describes which parameter is invalid and how to fix it. - When StatusCode is 500: Describes the system-level error (timeout, connection failure, etc.).

Update a Stage

Updates an existing stage's properties within a pipeline.

When to use:

  • Changing stage title or color
  • Reordering stages in pipeline
  • Modifying deal card display settings

Key points:

  • Partial update: Only provided fields are updated
  • Color is 6-char HEX code without # symbol
  • Order controls stage position (lower = earlier)
  • Use AdditionalFields for card display settings

Next: Get Many Stages, Update a Pipeline, Create a Deal

Input Parameters:

  • StageId: ID of the deal stage to update.

How to obtain

Option 1:

  1. Call the 'activecampaign_get_many_stages` interface.
  2. Find the target DealStages in the returned Stages array.
  3. Copy the group field value of DealStages array index object.

or Option 2:

  1. Call the activecampaign_create_stage interface.
  2. Copy the id field value of the created Stage object.

Example: 123456

Options:

  • Title: Stage title/name. Example: Negotiation
  • Group: The ID of the pipeline (group) for this stage. You can get pipeline IDs from 'Get Many Pipelines' or 'Create a Pipeline' action. IMPORTANT: If you get a 422 error saying 'dealGroup does not exist', it means the stage's current pipeline has been deleted. You must provide a valid Group parameter to fix this. Example: 1
  • Order: The order/position of the stage within the pipeline. Lower numbers appear first. Example: 2
  • Color: Stage color as 6-character HEX code without hashtag. Example: 3f3f3f
  • Reorder: Whether to automatically reorder all stages within the pipeline after update. If true, new order values will be assigned to all stages. If stages with the same order exist, the stage with the highest ID will be assigned the lowest order.
  • AdditionalFields: Additional stage fields to update (object). Use this for less common fields not listed above.

Common additional fields:

  • dealOrder (string): Sort option and direction for deals (e.g., "next-action DESC")
  • cardRegion1 (string): What to show in upper-left corner of Deal Cards (default: title)
  • cardRegion2 (string): What to show in upper-right corner (default: next-action)
  • cardRegion3 (string): Avatar visibility, "show-avatar" or "hide-avatar" (default: show-avatar)
  • cardRegion4 (string): What to show next to avatar (default: contact-fullname-orgname)
  • cardRegion5 (string): What to show in lower-right corner (default: value)
  • width (number): Stage width in pixels (default: 280)

Only provided fields will be updated, others remain unchanged (PATCH behavior).

Example: {"dealOrder": "value DESC", "width": 320}

Output:

  • Stage (object): Updated deal stage object containing:
  • id (string): Stage ID
  • title (string): Stage title/name
  • group (string): Pipeline ID
  • order (string): Stage order within pipeline
  • color (string): Stage color (HEX code)
  • width (string): Stage width in pixels
  • dealOrder (string): Deal sort option
  • cardRegion1-5 (string): Deal card display settings
  • cdate (string): Creation date (ISO 8601)
  • udate (string): Last update date (ISO 8601)

Returns empty object {} if operation failed.

  • OriginalStatusCode (number): The original HTTP status code returned by the upstream API. Default 0 means the request did not reach upstream (e.g., timeout). Use for debugging.
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Detailed error message if any error occurred. Empty string if the operation succeeded.
  • When StatusCode is 200 and ErrorMessage is empty: Operation fully succeeded.
  • When StatusCode is 200 and ErrorMessage is not empty: Upstream API returned a business error (e.g., resource not found, permission denied).
  • When StatusCode is -1: Describes which parameter is invalid and how to fix it.
  • When StatusCode is 500: Describes the system-level error (timeout, connection failure, etc.).

Create a Tag

Creates a tag for organizing and categorizing contacts or email templates.

When to use:

  • Categorizing contacts by interest or behavior
  • Segmenting customers for targeted campaigns
  • Organizing email template library

Key points:

  • Idempotent: Returns existing tag if name+type match (safe for retries)
  • TagType: 'contact' (default, most common) or 'template'
  • Tag ID can be used in Add/Remove Tag to Contact actions

Next: Add a Contact Tag, Remove a Contact Tag, Get Many Tags

Input Parameters:

  • Tag: Tag name. This is the display name for the tag. Example: "VIP Customer"

Options:

  • TagType: Tag type. Determines what this tag can be applied to:

Values:

  • contact (default): Tag for contacts. Use this for organizing leads, customers, or any contact records. Example: "VIP Customer", "Newsletter Subscriber"
  • template: Tag for email templates. Use this for categorizing your email template library. Example: "Welcome Series", "Promotional"

Note: ActiveCampaign API uses specific string values. Most users should use "contact".

  • Description: Tag description. Optional text to describe the purpose or usage of this tag. Example: "High-value customers from Q1 2024 campaign"

Output:

  • Tag (object): The created tag object containing complete information. Includes the following fields:
  • id (string): Tag ID, can be used in Add Tag to Contact API
  • tag (string): Tag name
  • tagType (string): Tag type (contact or template)
  • description (string): Tag description
  • cdate (string): Creation timestamp (ISO 8601 format)
  • links (object): Related resource links

Returns empty object {} on failure.

  • OriginalStatusCode (number): The original HTTP status code returned by the upstream API. Default 0 means the request did not reach upstream (e.g., timeout). Use for debugging.
  • 0: Did not reach upstream API
  • 200/201: Upstream success
  • 4xx: Client error (400 Bad Request / 401 Unauthorized / 404 Not Found)
  • 5xx: Upstream server error
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Detailed error message if any error occurred. Empty string if the operation succeeded.
  • When StatusCode is 200 and ErrorMessage is empty: Operation fully succeeded.
  • When StatusCode is 200 and ErrorMessage is not empty: Upstream API returned a business error (e.g., resource not found, permission denied).
  • When StatusCode is -1: Describes which parameter is invalid and how to fix it.
  • When StatusCode is 500: Describes the system-level error (timeout, connection failure, etc.).

Delete a Tag

Permanently deletes a tag from ActiveCampaign by its unique identifier. This operation cannot be undone.

When to use:

  • Clean up unused tags
  • Remove test tags
  • Reorganize tagging system

Key points:

  • Deletion is permanent and irreversible
  • All contact associations with this tag will be automatically removed
  • Tag usage history and analytics data will be lost
  • Deleting a tag removes it from all assigned contacts

Input Parameters:

  • TagId: The ID of the tag to delete. Must be a positive integer greater than zero.

How to obtain

Option 1:

  1. Call the 'activecampaign_get_many_tags` interface.
  2. Find the target Tags in the returned Tags object.
  3. Copy the id field value of Tags array index object.

or Option 2:

  1. Call the activecampaign_create_tag interface.
  2. Copy the id field value of the created Tag object.

Example: 12

Output:

  • DeletedTag (object): The deleted tag object. Contains at minimum the id of the deleted tag and a deleted flag. May contain full tag details (tag, tagType, description) if API returns them.
  • OriginalStatusCode (number): The original HTTP status code returned by the upstream ActiveCampaign API. Default 0 means the request did not reach upstream (e.g., timeout, parameter validation error). Use for debugging.
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Error message description, returns empty string on success. Contains user-friendly error messages for common issues (401: API key invalid, 404: resource not found, etc.).

Get Many Tags

Retrieves a paginated list of tags with search and sorting.

When to use:

  • List all tags
  • Search tags by name
  • Get tag IDs for contact operations

Key points:

  • Search with multiple operators (contains, equals, etc.)
  • Sort by name or usage weight
  • Pagination: max 100 per request

Options:

  • Limit: Number of tags to retrieve per request. Must be between 1 and 100. Default: 100.
  • Offset: Pagination offset (starting position). Minimum value is 0. Example: Offset=0 for first page, Offset=100 for second page when Limit=100.
  • SearchText: Text to search in tag names. Example: 'VIP'.
  • SearchOperator: Search operator for SearchText. Supported values: eq, neq, lt, lte, gt, gte, contains, starts_with. Default: contains.
  • SearchOrder: Sort order for matched tags. Supported values: asc (A-Z), desc (Z-A), weight (most used first). Default: asc.

Output:

  • Tags (object): Business data object for tags query. Includes: Tags (array of tag objects), Pagination (object with limit, offset, total, hasMore).
  • OriginalStatusCode (number): Original HTTP status code returned by upstream API. 0 means request did not reach upstream.
  • StatusCode (number): Unified operation status code: 200 for success/business error, -1 for parameter validation error, 500 for system/network error.
  • ErrorMessage (string): Error details. Empty string means success. When StatusCode=200 and ErrorMessage is not empty, it indicates upstream business error.

Get a Tag

Retrieves details of a specific tag by ID.

When to use:

  • Verify tag exists before applying to contacts
  • Get tag metadata
  • Check tag type and description

Key points:

  • Returns tag with name, type, and description
  • Use TagId from Get Many Tags or search
  • Includes creation date

Input Parameters:

  • TagId: The unique identifier of the tag to retrieve. Must be a positive integer greater than zero.

How to obtain

Option 1:

  1. Call the 'activecampaign_get_many_tags` interface.
  2. Find the target Tags in the returned Tags object.
  3. Copy the id field value of Tags array index object.

or Option 2:

  1. Call the activecampaign_create_tag interface.
  2. Copy the id field value of the created Tag object.

Example: 12

Output:

  • Tag (object): The retrieved tag object, containing the following fields:
  • id (string): Tag unique identifier
  • tag (string): Tag name/label
  • tagType (string): Tag type (e.g., 'contact')
  • description (string): Tag description
  • cdate (string): Creation date in ISO 8601 format
  • OriginalStatusCode (number): The original HTTP status code returned by the upstream API. Default 0 means the request did not reach upstream (e.g., timeout). Use for debugging.
  • StatusCode (number): HTTP status code or operation status code (-1 for parameter error, 500 for exceptions).
  • ErrorMessage (string): Error message if operation failed.

Update a Tag

Updates an existing tag's name, type, or description.

When to use:

  • Renaming tags for better clarity
  • Updating tag descriptions
  • Changing tag type (contact/template)

Key points:

  • Partial update: Only provided fields are updated
  • TagType: 'contact' or 'template'
  • Tag name changes affect all tagged contacts/templates
  • Description is optional but helpful for organization

Next: Get a Tag, Get Many Tags, Add a Contact Tag

Input Parameters:

  • TagId: The unique identifier of the tag to update.

How to obtain

Option 1:

  1. Call the 'activecampaign_get_many_tags` interface.
  2. Find the target Tags in the returned Tags object.
  3. Copy the id field value of Tags array index object.

or Option 2:

  1. Call the activecampaign_create_tag interface.
  2. Copy the id field value of the created Tag object.

Example: 12

Options:

  • TagName: The new name for the tag. Leave empty to keep the current name.

Update Strategy: This is a partial update - only fields you provide will be updated. Fields left empty will remain unchanged.

Example: "VIP Customer"

  • TagType: The type of the tag. Leave empty to keep the current type.

Allowed Values:

  • contact: Tag for contacts/subscribers (most common)
  • template: Tag for email templates

Business Scenarios:

  • Use contact for customer segmentation (e.g., VIP, Lead, Customer)
  • Use template for email template categorization

Example: "contact"

  • Description: A description of the tag's purpose. Leave empty to keep the current description.

Update Strategy: This is a partial update - only fields you provide will be updated.

Example: "High-value customers from enterprise accounts"

Output:

  • Tag (object): The updated tag object containing:
  • id (string): Unique tag ID
  • tag (string): Tag name
  • tagType (string): Tag type (contact/template)
  • description (string): Tag description
  • cdate (string): Creation date (ISO 8601 format)
  • subscriber_count (string): Number of subscribers with this tag

Returns empty object {} on failure.

  • OriginalStatusCode (number): The original HTTP status code returned by the upstream API. Default 0 means the request did not reach upstream (e.g., timeout). Use for debugging.
  • 0: Did not reach upstream API
  • 200: Upstream update success
  • 401: Unauthorized (invalid API key)
  • 403: Forbidden (insufficient permissions)
  • 404: Tag not found
  • 422: Validation error (invalid tag data)
  • 5xx: Upstream server error
  • StatusCode (number): Operation status code. -1 for parameter validation error, 200 for request completed (check ErrorMessage for business errors), 500 for network/system errors (Agent may retry).
  • ErrorMessage (string): Detailed error message if any error occurred. Empty string if the operation succeeded.
  • When StatusCode is 200 and ErrorMessage is empty: Update fully succeeded.
  • When StatusCode is 200 and ErrorMessage is not empty: Upstream API returned a business error (e.g., tag not found, validation error, permission denied).
  • When StatusCode is -1: Describes which parameter is invalid and how to fix it.
  • When StatusCode is 500: Describes the system-level error (timeout, connection failure, etc.).

5. Example Usage

This section will guide you through creating a simple workflow to create a new contact in your Activecampaign account.

Workflow Overview

A basic workflow contains three nodes: Start -> Activecampaign: Create a Contact -> Answer. When the workflow is triggered, it will use the Activecampaign node to add a new contact's information to your account.

Step-by-Step Guide

  1. Add Tool Node:
    • In the workflow canvas, click the "+" button to add a new node.
    • Select the "Tools" tab in the pop-up panel.
    • Find and select Activecampaign in the tools list.
    • In the Activecampaign supported operations list, click to select Create a Contact, which will add a corresponding node to the canvas.
  2. Configure Node:
    • Click the newly added Create a Contact node, and the configuration panel for this node will expand on the right side.
    • Credentials Configuration: At the top of the panel, find the credentials field. Click the dropdown menu and select your configured Activecampaign credentials.
    • Parameter Filling:
    • ContactData: This is the core parameter of this operation, requiring data in JSON object format. You need to provide the contact's details. For example, to create a contact named "John Doe" with email "john.doe@example.com", you should enter the following JSON content:
{
  "contact": {
    "email": "john.doe@example.com",
    "firstName": "John",
    "lastName": "Doe"
  }
}
  1. Run and Verify:
    • When all required parameters are filled in correctly, the error message in the upper right corner of the workflow canvas will disappear.
    • Click the "Test Run" button in the upper right corner of the canvas to execute the workflow.
    • After successful execution, you can click the log icon in the upper right corner to view the detailed input and output of the node. In the output, you should see a newly generated ContactId, indicating that the contact was successfully created. You can also log in to your Activecampaign account backend to verify.

Final Workflow Display

After completing the above steps, your entire workflow is configured. Click "Test Run", and a new contact will be successfully created in your Activecampaign account.

6. FAQs

Q: Why am I receiving a "401 Unauthorized" error?

A: This error is usually related to credentials configuration. Please check the following:

  • API URL and API Key: Ensure that the API URL and API Key in the Activecampaign credentials configured in GoInsight are completely correct, with no extra spaces or characters.
  • Credentials Validity: Confirm that your API Key is still valid in the Activecampaign backend and has not been disabled or regenerated.

Q: How do I find a specific List ID or Pipeline ID to use in other operations?

A: You can complete this operation in two steps:

  1. First, use the Get Many Lists or Get Many Pipelines operation to get a list of all lists or pipelines.
  2. After running that node, look for the list or pipeline you need in the output log and note down its id field value.
  3. Then, you can fill in this ID in other nodes that require ListId or PipelineId (such as Add a Contact to a List).

Q: The "Create a Contact" operation failed. What could be the reason?

A: Please check the following common reasons:

  • Data Format: Ensure that the JSON format you entered in the ContactData field is correct. A common error is missing the outer {"contact": { ... }} structure.
  • Required Fields: At least one valid email address must be provided.
  • Email Already Exists: If the contact email you are trying to create already exists in your Activecampaign account, the operation may fail or be handled in a specific way by the system.

7. Official Documentation

To learn more about the ActiveCampaign API, please refer to the official documentation:

Activecampaign Official API Documentation

Was This Page Helpful?
Discussion

Leave a Reply.

Your email address will not be published. Required fields are marked*

loading...
No Results