# ActiveCampaign

Keep ActiveCampaign contacts, accounts and deals up to date, put contacts on lists, tags and automations, and sync e-commerce customers and orders.

## Connect ActiveCampaign

1. In the sidebar, open **Connections** and press **Add connection**.
2. Type `activecampaign` and choose **ActiveCampaign**.
3. Fill in the fields. Each one says **Required** or **Optional**.
4. Press **Test and save**. GoRunner checks the connection before it saves anything.

The sheet asks for:

- **API URL · Required**: The account’s API address, such as https://acme.api-us1.com (the name alone, acme, works too).
- **API key · Required**: The key shown next to the URL.

Paste the account’s API URL and an API key, both under Settings › Developer in ActiveCampaign. The key acts with the rights of the user it belongs to.

[Connections](https://docs.gorunner.io/build/connections) says how to sign in again, rename or delete it. In a product that embeds GoRunner, **Add connection** can be missing: then [your provider makes connections](https://docs.gorunner.io/embed/customer-connections) for you.

## Start a workflow

Add a trigger and choose **ActiveCampaign**. The trigger uses the same connection as the steps.

### On Contact or Deal

Checks ActiveCampaign about once a minute and starts a run for each contact or deal added or changed since the check before, oldest first. The first check after publishing only takes note of what is there (it starts nothing); changing the trigger starts over the same way. Each change of a record starts one run. At most 100 runs start per check; the rest follow on the next one. Deal changes are read a day's window at a time: more than 2,000 changed deals between two checks fails the check rather than skip any.

- **Trigger on · Required**: Which records start a run. Options: New contact, Contact updated, New deal, Deal updated. Default: New contact.

A later step can use its data, such as `{{trigger.cdate}}`, `{{trigger.change_type}}`, `{{trigger.email}}` and 4 more. See [Use data from earlier steps](https://docs.gorunner.io/build/use-data-from-earlier-steps).

## Do things in ActiveCampaign

Add an **ActiveCampaign** step, choose a **Resource**, then an **Operation**. Choose a row to see its fields.

- [Contact](https://docs.gorunner.io/apps/activecampaign#fields-f-contact): Create · Get · Get Many · Update · Delete
- [Contact List](https://docs.gorunner.io/apps/activecampaign#fields-f-contactlist): Add · Remove
- [Contact Tag](https://docs.gorunner.io/apps/activecampaign#fields-f-contacttag): Add · Remove
- [Contact Automation](https://docs.gorunner.io/apps/activecampaign#fields-f-contactautomation): Add · Get Many · Remove
- [Account](https://docs.gorunner.io/apps/activecampaign#fields-f-account): Create · Get · Get Many · Update · Delete
- [Account Contact](https://docs.gorunner.io/apps/activecampaign#fields-f-accountcontact): Create · Update · Delete
- [Deal](https://docs.gorunner.io/apps/activecampaign#fields-f-deal): Create · Get · Get Many · Update · Delete · Create Note · Update Note
- [Tag](https://docs.gorunner.io/apps/activecampaign#fields-f-tag): Create · Get · Get Many · Update · Delete
- [List](https://docs.gorunner.io/apps/activecampaign#fields-f-list): Get · Get Many
- [Automation](https://docs.gorunner.io/apps/activecampaign#fields-f-automation): Get Many
- [Connection](https://docs.gorunner.io/apps/activecampaign#fields-f-connection): Create · Get · Get Many · Update · Delete
- [E-commerce Customer](https://docs.gorunner.io/apps/activecampaign#fields-f-ecommercecustomer): Create · Get · Get Many · Update · Delete
- [E-commerce Order](https://docs.gorunner.io/apps/activecampaign#fields-f-ecommerceorder): Create · Get · Get Many · Update · Delete
- [E-commerce Order Products](https://docs.gorunner.io/apps/activecampaign#fields-f-ecommerceorderproducts): Get Many · Get by Product ID · Get by Order ID

Later steps read a step’s output by its name: see [Use data from earlier steps](https://docs.gorunner.io/build/use-data-from-earlier-steps).

## Limits

- A reply from ActiveCampaign can be up to 16 MB (a file download can have its own limit). A larger one fails the step; it is never cut short.
- When ActiveCampaign says to slow down (429), the step waits as long as it asks, if the step’s time allows. Otherwise it fails and says when to try again.

Not in your list? See [When an app isn’t here](https://docs.gorunner.io/apps/when-an-app-isnt-here#q-not-in-list).

## For developers

In the API, which calls apps pieces, ActiveCampaign is `pieceId: "activecampaign"` with `actionId: "activecampaign"`, set by `resource` and an `operation_…` field, such as `operation_account`. Its trigger is `activecampaigntrigger` / `activecampaign_poll`. [Get an app](https://docs.gorunner.io/api/apps/get-app) returns every field.

It can change something outside the run (`writes_external`). See [How versions and side effects work](https://docs.gorunner.io/apps#q-versions).

### ActiveCampaign › Contact

### Create

- **Update If It Exists · Optional**: Update the contact that has this email instead of failing (ActiveCampaign's sync). Off by default.
- **Email · Optional**: The contact's email address. Required to create.
- **First Name · Optional**
- **Last Name · Optional**
- **Phone · Optional**
- **Custom Fields · Optional**: Custom field values by field id, such as {"1": "Gold", "4": "2026-11-01"}. Fields not given are left as they are.

### Get and Delete

- **Contact ID · Required**: The record's id (a number).

### Get Many

- **Email · Optional**: Only the contact with this exact address.
- **Search · Optional**: Text in the email, name, phone or account name.
- **On List · Optional**: Only contacts on this list (its id).
- **With Tag · Optional**: Only contacts with this tag (its id).
- **Status · Optional**: Only contacts with this status (with On List: on that list). Options: Any, Unconfirmed, Active, Unsubscribed, Bounced.
- **Updated After · Optional**: Only contacts changed after this day (YYYY-MM-DD).
- **Return All · Optional**: Read every record, page by page (at most 5000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many records to return (1–5000). Default: 50. Shows when **Return All** is off.

### Update

- **Contact ID · Required**: The record's id (a number).
- **Email · Optional**: The contact's email address. Required to create.
- **First Name · Optional**
- **Last Name · Optional**
- **Phone · Optional**
- **Custom Fields · Optional**: Custom field values by field id, such as {"1": "Gold", "4": "2026-11-01"}. Fields not given are left as they are.

### ActiveCampaign › Contact List

### Add and Remove

- **List · Required**: Pick one, or paste its id.
- **Contact ID · Required**: The record's id (a number).

### ActiveCampaign › Contact Tag

### Add

- **Tag · Required**: Pick one, or paste its id.
- **Contact ID · Required**: The contact's id.

### Remove

- **Contact Tag ID · Required**: The id of the contact's tagging (Contact Tag › Add returns it as id).

### ActiveCampaign › Contact Automation

### Add

- **Contact ID · Required**: The record's id (a number).
- **Automation · Required**: Pick one, or paste its id.

### Get Many

- **Contact ID · Required**: The record's id (a number).
- **Return All · Optional**: Read every automation, page by page (at most 5000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many automations to return (1–5000). Default: 50. Shows when **Return All** is off.

### Remove

- **Contact Automation ID · Required**: The record's id (a number).

### ActiveCampaign › Account

### Create

- **Name · Optional**: The account's (company's) name. Required to create.
- **Website · Optional**
- **Custom Fields · Optional**: Custom field values by field id, such as {"5": "Enterprise"}.

### Get and Delete

- **Account ID · Required**: The record's id (a number).

### Get Many

- **Search · Optional**: Text in the account's name.
- **Return All · Optional**: Read every record, page by page (at most 5000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many records to return (1–5000). Default: 50. Shows when **Return All** is off.

### Update

- **Account ID · Required**: The record's id (a number).
- **Name · Optional**: The account's (company's) name. Required to create.
- **Website · Optional**
- **Custom Fields · Optional**: Custom field values by field id, such as {"5": "Enterprise"}.

### ActiveCampaign › Account Contact

### Create

- **Account ID · Required**: Its id (a number).
- **Contact ID · Required**: Its id (a number).
- **Job Title · Optional**: The contact's job title at the account.

### Update

- **Account Contact ID · Required**: The record's id (a number).
- **Job Title · Optional**: The contact's job title at the account.

### Delete

- **Account Contact ID · Required**: The record's id (a number).

### ActiveCampaign › Deal

### Create

- **Title · Optional**: Required to create.
- **Contact ID · Optional**: The deal's main contact (a contact or an account is needed).
- **Account ID · Optional**: The deal's account.
- **Value (cents) · Optional**: The deal's value in cents of the currency: 45678 is 456.78. Required to create.
- **Currency · Optional**: Three letters, such as usd, eur. Required to create.
- **Pipeline ID · Optional**: The pipeline (empty: the stage's).
- **Stage ID · Optional**: The stage (empty: the pipeline's first).
- **Owner ID · Optional**: The user who owns the deal (needed when the pipeline does not assign one).
- **Description · Optional**
- **Status · Optional**: Options: Open, Won, Lost.
- **Probability (%) · Optional**
- **Custom Fields · Optional**: Custom field values by field id, such as {"3": "Referral"}. A currency field's value is in cents.

### Get and Delete

- **Deal ID · Required**: The record's id (a number).

### Get Many

- **Search · Optional**: Text in the title, contact or account.
- **Pipeline ID · Optional**
- **Stage ID · Optional**
- **Owner ID · Optional**
- **Status · Optional**: Options: Open, Won, Lost.
- **Updated After · Optional**: Only deals changed after this day (YYYY-MM-DD).
- **Return All · Optional**: Read every record, page by page (at most 5000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many records to return (1–5000). Default: 50. Shows when **Return All** is off.

### Update

- **Deal ID · Required**: The record's id (a number).
- **Title · Optional**: Required to create.
- **Contact ID · Optional**: The deal's main contact (a contact or an account is needed).
- **Account ID · Optional**: The deal's account.
- **Value (cents) · Optional**: The deal's value in cents of the currency: 45678 is 456.78. Required to create.
- **Currency · Optional**: Three letters, such as usd, eur. Required to create.
- **Pipeline ID · Optional**: The pipeline (empty: the stage's).
- **Stage ID · Optional**: The stage (empty: the pipeline's first).
- **Owner ID · Optional**: The user who owns the deal (needed when the pipeline does not assign one).
- **Description · Optional**
- **Status · Optional**: Options: Open, Won, Lost.
- **Probability (%) · Optional**
- **Custom Fields · Optional**: Custom field values by field id, such as {"3": "Referral"}. A currency field's value is in cents.

### Create Note

- **Deal ID · Required**: The record's id (a number).
- **Note · Required**: The note's text.

### Update Note

- **Deal ID · Required**: The record's id (a number).
- **Note · Required**: The note's text.
- **Note ID · Required**: The record's id (a number).

### ActiveCampaign › Tag

### Create

- **Name · Optional**: Required to create.
- **Type · Optional**: Required to create. Options: Contact tag, Template tag.
- **Description · Optional**

### Get and Delete

- **Tag ID · Required**: The record's id (a number).

### Get Many

- **Search · Optional**: Text in the tag's name.
- **Return All · Optional**: Read every record, page by page (at most 5000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many records to return (1–5000). Default: 50. Shows when **Return All** is off.

### Update

- **Tag ID · Required**: The record's id (a number).
- **Name · Optional**: Required to create.
- **Type · Optional**: Required to create. Options: Contact tag, Template tag.
- **Description · Optional**

### ActiveCampaign › List

### Get

- **List ID · Required**: The record's id (a number).

### Get Many

- **Name · Optional**: Only lists with this name.
- **Return All · Optional**: Read every record, page by page (at most 5000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many records to return (1–5000). Default: 50. Shows when **Return All** is off.

### ActiveCampaign › Automation

### Get Many

- **Return All · Optional**: Read every record, page by page (at most 5000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many records to return (1–5000). Default: 50. Shows when **Return All** is off.

### ActiveCampaign › Connection

### Create

- **Service · Optional**: The e-commerce service's name, such as My Shop. Required to create.
- **External ID · Optional**: The shop's id in that service (its domain, say). Required to create.
- **Name · Optional**: The shop's name as ActiveCampaign shows it. Required to create.
- **Logo URL · Optional**: Required to create.
- **Link URL · Optional**: The shop's address. Required to create.

### Get and Delete

- **Connection ID · Required**: The record's id (a number).

### Get Many

- **Service · Optional**
- **External ID · Optional**
- **Return All · Optional**: Read every record, page by page (at most 5000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many records to return (1–5000). Default: 50. Shows when **Return All** is off.

### Update

- **Connection ID · Required**: The record's id (a number).
- **Service · Optional**: The e-commerce service's name, such as My Shop. Required to create.
- **External ID · Optional**: The shop's id in that service (its domain, say). Required to create.
- **Name · Optional**: The shop's name as ActiveCampaign shows it. Required to create.
- **Logo URL · Optional**: Required to create.
- **Link URL · Optional**: The shop's address. Required to create.

### ActiveCampaign › E-commerce Customer

### Create

- **Connection ID · Required**: Its id (a number).
- **External ID · Optional**: The customer's id in the shop. Required to create.
- **Email · Optional**: Required to create.
- **Accepts Marketing · Optional**: Options: Yes, No.

### Get and Delete

- **Customer ID · Required**: The record's id (a number).

### Get Many

- **Email · Optional**
- **External ID · Optional**
- **Connection ID · Optional**
- **Return All · Optional**: Read every record, page by page (at most 5000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many records to return (1–5000). Default: 50. Shows when **Return All** is off.

### Update

- **Customer ID · Required**: The record's id (a number).
- **External ID · Optional**: The customer's id in the shop. Required to create.
- **Email · Optional**: Required to create.
- **Accepts Marketing · Optional**: Options: Yes, No.

### ActiveCampaign › E-commerce Order

### Create

- **External ID · Optional**: The order's id in the shop.
- **Source · Optional**: Real time (triggers automations) or historical (an import). Required to create. Options: Real time, Historical.
- **Email · Optional**: Required to create.
- **Total (cents) · Optional**: The order's total in cents. Required to create.
- **Currency · Optional**: Three letters, such as USD. Required to create.
- **Connection ID · Required**: Its id (a number).
- **Customer ID · Required**: Its id (a number).
- **Ordered At · Optional**: When the order was placed (ISO 8601). Required to create.
- **Updated At · Optional**: When the order last changed (ISO 8601).
- **Order Number · Optional**
- **Order URL · Optional**
- **Shipping Method · Optional**
- **Shipping (cents) · Optional**
- **Tax (cents) · Optional**
- **Discount (cents) · Optional**
- **Products · Optional**: The products, such as [{"externalid": "SKU1", "name": "Mug", "price": 1299, "quantity": 2, "category": "Kitchen"}] (price in cents).

### Get and Delete

- **Order ID · Required**: The record's id (a number).

### Get Many

- **Email · Optional**
- **External ID · Optional**
- **Connection ID · Optional**
- **Customer ID · Optional**
- **Return All · Optional**: Read every record, page by page (at most 5000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many records to return (1–5000). Default: 50. Shows when **Return All** is off.

### Update

- **Order ID · Required**: The record's id (a number).
- **External ID · Optional**: The order's id in the shop.
- **Source · Optional**: Real time (triggers automations) or historical (an import). Required to create. Options: Real time, Historical.
- **Email · Optional**: Required to create.
- **Total (cents) · Optional**: The order's total in cents. Required to create.
- **Currency · Optional**: Three letters, such as USD. Required to create.
- **Ordered At · Optional**: When the order was placed (ISO 8601). Required to create.
- **Updated At · Optional**: When the order last changed (ISO 8601).
- **Order Number · Optional**
- **Order URL · Optional**
- **Shipping Method · Optional**
- **Shipping (cents) · Optional**
- **Tax (cents) · Optional**
- **Discount (cents) · Optional**
- **Products · Optional**: The products, such as [{"externalid": "SKU1", "name": "Mug", "price": 1299, "quantity": 2, "category": "Kitchen"}] (price in cents).

### ActiveCampaign › E-commerce Order Products

### Get Many

- **Return All · Optional**: Read every product, page by page (at most 5000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many products to return (1–5000). Default: 50. Shows when **Return All** is off.

### Get by Product ID

- **Product ID · Required**: The record's id (a number).

### Get by Order ID

- **Order ID · Required**: The record's id (a number).
- **Return All · Optional**: Read every product, page by page (at most 5000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many products to return (1–5000). Default: 50. Shows when **Return All** is off.

Source: https://docs.gorunner.io/apps/activecampaign
