Skip to content
ActiveCampaign

Connector · CRM and email lists

ActiveCampaign, in every client’s workflows.

Add or update a contact, subscribe to a list, with the client’s own ActiveCampaign account.

Triggers
0start a workflow
Actions
2steps in a workflow

Do it in ActiveCampaign

A step with its own fields: values from the run go in by name, and what ActiveCampaign answers is there for the next step.

  • Add or update a contactCreates the contact, or updates the one with this email.
  • Subscribe to a listPuts a contact on a list, which starts the list’s “subscribes” automations. It re-subscribes someone who had unsubscribed from that list themselves: use it for people who just asked to hear from the client.

Connect the client’s ActiveCampaign

On the client’s page in Thrum: Add credential, type ActiveCampaign API access.

In the client’s ActiveCampaign: Settings → Developer → copy the URL and the Key.

The key is stored encrypted and bound to that client: another client’s workflow cannot use it, and no template or pack copies it.

ActiveCampaign’s API documentation

Via HTTP

Or by web request: create or update a contact

The lead enters the client’s list, and their ActiveCampaign automations take it from there. The web request step, filled in: paste it, swap in the client’s ids, add their key.

  1. 01

    Add the client’s credential

    On the client’s page in Thrum: Add credential, type API key. In the client’s ActiveCampaign: Settings → Developer → copy the Key. The URL on the same page is the account’s address for the step.

    {
      "api_key": "…"
    }
  2. 02

    Add a web request step

    Name it “Add to ActiveCampaign”, set it as here, and pick the credential. Values in double braces are read from the run: here, the lead the form brought in.

    ACCOUNT
    From the URL under Settings → Developer: https://<account>.api-us1.com.
    {
      "method": "POST",
      "url": "https://ACCOUNT.api-us1.com/api/3/contact/sync",
      "headers": {
        "Api-Token": "{{ credential.api_key }}"
      },
      "body": {
        "contact": {
          "email": "{{ lead.email }}",
          "firstName": "{{ lead.name }}",
          "phone": "{{ lead.phone }}"
        }
      }
    }
  3. 03

    What goes out, and what comes back

    Sync matches on email: a second enquiry updates the same contact.

    POST https://ACCOUNT.api-us1.com/api/3/contact/sync
    content-type: application/json
    api-token: ••••••••
    
    {
      "contact": {
        "email": "nadia@example.com",
        "firstName": "Nadia Karim",
        "phone": "+447700900222"
      }
    }
    201
    {
      "contact": {
        "email": "nadia@example.com",
        "firstName": "Nadia Karim",
        "phone": "+447700900222",
        "id": "113"
      }
    }

Watched like everything else

When ActiveCampaign stops answering or refuses the client’s key, you hear about it, and your client does not.

A failing request
Tried 3 times, 5 seconds apart and doubling, only for errors a retry can fix
A service that asks for a pause
Given it, up to an hour
Requests at once, per account
2, per worker; the rest wait their turn
Timeout
15 seconds, unless the step sets its own
Private and internal addresses
Refused, on every redirect too
The client’s key
Encrypted, bound to the client, and kept out of every run record
A step that keeps failing
Marks the workflow Degraded and alerts you, not the client

ActiveCampaign and its logo are trademarks of their owner, used here only to say what Thrum works with; no endorsement is implied.

Thrum is cooking.

Get early access and you’ll be among the first in. Early members get a launch perk.