> ## Documentation Index
> Fetch the complete documentation index at: https://docs.atako.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# ActiveCampaign

> Connect ActiveCampaign to your Atako agents — 18 read and 11 write actions.

Let your agents manage contacts, lists, tags, notes and deals in ActiveCampaign, read campaigns and automations, and enrol contacts in automations.

## Connection

* **Authentication**: API key.
* **Required settings**:
  * **Account** — Subdomain from your API URL (e.g. "atako" in [https://atako.api-us1.com](https://atako.api-us1.com))

<Note>
  Settings → Developer → API Access → copy the API key (each user of the account has their own key; the connector inherits that user's permissions). The Account field is the subdomain of the API URL shown on the same page (https\://\<account>.api-us1.com).

  See [ActiveCampaign's documentation](https://developers.activecampaign.com/reference/authentication).
</Note>

## Read actions (18)

| Action | Description |
| - | - |
| `get_contact` | Fetch one contact by ID. |
| `get_current_user` | Fetch the current API user (use to verify the key works). |
| `get_deal` | Fetch one deal by ID. |
| `get_list` | Fetch one mailing list by ID. |
| `list_accounts` | List all CRM accounts. Optionally search by name. |
| `list_automations` | List all automations in the account. |
| `list_campaigns` | List campaigns. Filter by name (partial match), type (single/recurring/split/responder/reminder/activerss/text), status (0-7). |
| `list_contact_activities` | List recent activities for a contact. Pass contact (integer ID) as a required query param. |
| `list_contact_lists` | List list memberships of a contact. |
| `list_contact_tags` | List tags applied to a contact. |
| `list_contacts` | List contacts. Filter by email (exact), search (name/email/phone), listid, tagid, status (-1=all, 0=unsub, 1=sub, 2=bounce, 3=complaint), limit (max 100), offset. Sort with orders\[id]=asc\|desc. |
| `list_custom_fields` | List all contact custom fields. |
| `list_deal_pipelines` | List all deal pipelines (deal groups). |
| `list_deal_stages` | List all deal stages. Optionally filter by pipeline (d\_groupid). |
| `list_deals` | List deals. Filter by search (title/company/contact email), stage (stage ID), group (pipeline ID), status (0=open, 1=won, 2=lost), owner (user ID), limit, offset. |
| `list_lists` | List all mailing lists in the account. |
| `list_tags` | List all tags. Optionally search by name. |
| `list_users` | List all users in the account. |

## Write actions (11)

| Action | Description |
| - | - |
| `add_contact_to_automation` | Add a contact to an automation. Body: \{ contactAutomation: \{ contact (integer, contact ID), automation (integer, automation ID) } }. |
| `add_contact_to_list` | Subscribe or unsubscribe a contact from a list. Body: \{ contactList: \{ list (integer, list ID), contact (integer, contact ID), status (integer: 1=subscribed, 2=unsubscribed) } }. |
| `add_note_to_contact` | Add a note to a contact. Body: \{ note: \{ note (string, required), relid (integer, contact ID), reltype ("Subscriber") } }. |
| `add_tag_to_contact` | Apply a tag to a contact. Body: \{ contactTag: \{ contact (integer, contact ID), tag (integer, tag ID) } }. |
| `create_contact` | Create a new contact. Body: \{ contact: \{ email (string, required), firstName (string), lastName (string), phone (string), fieldValues (\[\{field, value}]) } }. |
| `create_deal` | Create a deal. Body: \{ deal: \{ title (string, required), value (integer, cents), currency (string, e.g. "USD"), group (integer, pipeline ID), stage (integer, stage ID), owner (integer, user ID), contact (integer or email string), status (integer: 0=open, 1=won, 2=lost) } }. At least one of group or stage is required. |
| `create_tag` | Create a new tag. Body: \{ tag: \{ tag (string, name, required), tagType ("contact" or "template"), description (string) } }. |
| `remove_tag_from_contact` | Remove a tag association from a contact. The path param is the contactTag ID (not the tag ID). Use list\_contact\_tags to find it. |
| `sync_contact` | Upsert a contact by email (update if exists, create otherwise). Body: \{ contact: \{ email (string, required), firstName, lastName, phone, fieldValues (\[\{field, value}]), tags (\[string]) } }. |
| `update_contact` | Update a contact by ID. Body: \{ contact: \{ email, firstName, lastName, phone, fieldValues (\[\{field, value}]) } }. Only include fields to change. |
| `update_deal` | Update a deal by ID. Body: \{ deal: \{ title, value, currency, group, stage, owner, contact, status } }. Only include fields to change. |

## Permissions

Every action above must be explicitly granted to an agent before it can be used. See [Permissions](/integrations/permissions) for the grant model and [Security](/integrations/security) for how credentials are protected.

***

*Last reviewed against the provider API: September 2026.*


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.