The ActiveCampaign connector lets your AI agent act in each user's ActiveCampaign account. Each user connects their own ActiveCampaign API key once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 120 tools.
- Tools
- 120
- What they doRead · write · destructive
- 62 · 43 · 1562 read43 write15 destructive
- Users sign in with
- API key
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the ActiveCampaign connection
In AgentKit > Connections, create an ActiveCampaign connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'activecampaign'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize ActiveCampaign:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'activecampaign_get_current_user',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "activecampaign"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize ActiveCampaign:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="activecampaign_get_current_user",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user opens the link once and enters their ActiveCampaign credentials there. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolactivecampaign_get_accountRetrieve one account (company) by ID.Read-onlyGet Account
Retrieve one account (company) by ID. Returns the account's name, accountUrl, owner, custom field values and dates. Use activecampaign_list_accounts to find the ID.
Inputs
account_idintegerrequired- ID of the account.
activecampaign_get_bulk_import_statusCheck the status of one bulk contact import by its batchId.Read-onlyGet Bulk Import Status
Check the status of one bulk contact import by its batchId. Returns status (completed when done), success (IDs of contacts created or updated) and failure (emails not imported). Use this after activecampaign_bulk_import_contacts; poll until status is completed instead of resubmitting.
Inputs
batch_idstringrequired- The batchId returned by bulk_import_contacts.
activecampaign_get_campaignRetrieve one email campaign by ID.Read-onlyGet Campaign
Retrieve one email campaign by ID. Returns the campaign's name, type, status, schedule and lifetime send, open, click, unsubscribe and bounce totals. Use activecampaign_get_campaign_messages for per-message (A/B variation) totals.
Inputs
campaign_idintegerrequired- ID of the campaign.
activecampaign_get_campaign_linksList the tracked links in one email campaign.Read-onlyGet Campaign Links
List the tracked links in one email campaign. Returns links with id, link URL, name and click tracking details. Use this to see which links a campaign contains.
Inputs
campaign_idintegerrequired- ID of the campaign.
activecampaign_get_campaign_messagesList the messages a campaign sent with their lifetime reporting totals; split (A/B) campaigns return one row per variation.Read-onlyGet Campaign Messages
List the messages a campaign sent with their lifetime reporting totals; split (A/B) campaigns return one row per variation. Returns campaignMessages with message ID and send, open, click and bounce counts. Not paginated. Use this to compare A/B variations. Use activecampaign_get_campaign for campaign-level totals.
Inputs
campaign_idintegerrequired- ID of the campaign.
activecampaign_get_contactRetrieve one contact by ID.Read-onlyGet Contact
Retrieve one contact by ID. Returns the contact record plus side-loaded contactLists, contactAutomations, fieldValues, deals and geoIps. Use this when you have the contact ID. Use activecampaign_list_contacts to find a contact by email or name.
Inputs
contact_idintegerrequired- ID of the contact.
activecampaign_get_contact_account_contactsList the account associations of one contact.Read-onlyGet Contact Account Associations
List the account associations of one contact. Returns accountContacts rows with account (account ID), jobTitle and the association id. Use this to find which accounts a contact belongs to. Use activecampaign_create_account_contact to link a contact to an account.
Inputs
contact_idintegerrequired- ID of the contact.
activecampaign_get_contact_automationsList the automations one contact is in or has completed.Read-onlyGet Contact Automations
List the automations one contact is in or has completed. Returns contactAutomations rows with automation (automation ID), status, adddate and the row id. Use this for one contact. Use activecampaign_list_automation_contacts for every contact in one automation.
Inputs
contact_idintegerrequired- ID of the contact.
activecampaign_get_contact_bounce_logsList the bounce log entries recorded for one contact.Read-onlyGet Contact Bounce Logs
List the bounce log entries recorded for one contact. Returns bounceLogs entries with timestamp, bounce code and campaign. Use this to see why emails to a contact bounced.
Inputs
contact_idintegerrequired- ID of the contact.
activecampaign_get_contact_custom_fieldRetrieve one contact custom field definition by ID.Read-onlyGet Contact Custom Field
Retrieve one contact custom field definition by ID. Returns the field's title, type, perstag and default value, with its options in fieldOptions and list links in fieldRels. Use activecampaign_list_contact_custom_fields to find the ID.
Inputs
field_idintegerrequired- ID of the custom field definition (not a field option ID).
activecampaign_get_contact_dealsList the deals where this contact is the primary contact.Read-onlyGet Contact Deals
List the deals where this contact is the primary contact. Returns deal records (id, title, value, currency, stage, group, status). Use this for one contact's deals. Use activecampaign_list_deals to search deals across the account.
Inputs
contact_idintegerrequired- ID of the contact.
activecampaign_get_contact_field_valueRetrieve one stored contact custom field value by its fieldValue ID.Read-onlyGet Contact Field Value
Retrieve one stored contact custom field value by its fieldValue ID. Returns the entry with contact, field and value. Use activecampaign_get_contact_field_values to read every value of a contact.
Inputs
field_value_idstringrequired- ID of the fieldValue record (not a contact or field ID).
activecampaign_get_contact_field_valuesList every stored custom field value of one contact.Read-onlyGet Contact Field Values
List every stored custom field value of one contact. Returns fieldValues entries with field (custom field ID), value and the entry's own id. Use this for one contact. Use activecampaign_list_contact_field_values to query values across contacts.
Inputs
contact_idintegerrequired- ID of the contact.
activecampaign_get_contact_listsList the lists a contact belongs to, one row per subscription.Read-onlyGet Contact Lists
List the lists a contact belongs to, one row per subscription. Returns contactLists rows with list, status (1 active, 2 unsubscribed, 3 bounced), sdate, udate and unsubreason. Use this to check a contact's subscriptions. Use activecampaign_update_contact_list_status to change them.
Inputs
contact_idintegerrequired- ID of the contact.
activecampaign_get_contact_notesList all notes attached to one contact, drafts included.Read-onlyGet Contact Notes
List all notes attached to one contact, drafts included. Returns notes with note text, userid, cdate and mdate; results are not paginated or ordered. Use this for one contact. Use activecampaign_create_note with reltype Subscriber to add a note.
Inputs
contact_idintegerrequired- ID of the contact.
activecampaign_get_current_userRetrieve the user whose API key this connection uses.Read-onlyGet Current User
Retrieve the user whose API key this connection uses. Returns that user's id, username, name and email. Use this to check the connection or to get your own user ID.
Inputs
This tool takes no inputs.
activecampaign_get_custom_object_recordRetrieve one custom object record by schema ID and record ID.Read-onlyGet Custom Object Record
Retrieve one custom object record by schema ID and record ID. Returns the record's id, externalId, fields and relationships. Use activecampaign_list_custom_object_records to find the record ID.
Inputs
record_idstringrequired- ID of the custom object record.
schema_idstringrequired- ID of the custom object schema.
activecampaign_get_dealRetrieve one deal by ID.Read-onlyGet Deal
Retrieve one deal by ID. Returns the deal's title, value (cents), currency, pipeline, stage, owner, status, primary contact and account. Use activecampaign_list_deals to find a deal by title or contact.
Inputs
deal_idintegerrequired- ID of the deal.
activecampaign_get_deal_stageRetrieve one deal stage by ID.Read-onlyGet Deal Stage
Retrieve one deal stage by ID. Returns the stage's title, pipeline, order, color and card settings. Use activecampaign_list_deal_stages to find the ID.
Inputs
stage_idintegerrequired- ID of the deal stage.
activecampaign_get_deal_taskRetrieve one CRM task by ID.Read-onlyGet Task
Retrieve one CRM task by ID. Returns the task's title, note, due date, status, type, assignee and related deal or contact. Use activecampaign_list_deal_tasks to find the ID.
Inputs
task_idintegerrequired- ID of the task.
activecampaign_get_ecom_customerRetrieve one e-commerce customer by ID.Read-onlyGet E-commerce Customer
Retrieve one e-commerce customer by ID. Returns the customer's email, connection, external ID and order and revenue totals. Use activecampaign_list_ecom_customers to find the ID.
Inputs
customer_idstringrequired- ID of the e-commerce customer.
activecampaign_get_ecom_orderRetrieve one e-commerce order by ID.Read-onlyGet E-commerce Order
Retrieve one e-commerce order by ID. Returns the order's products, totals, currency, state, customer and dates. Use activecampaign_list_ecom_orders to find the ID.
Inputs
order_idintegerrequired- ID of the e-commerce order.
activecampaign_get_listRetrieve one contact list by ID.Read-onlyGet List
Retrieve one contact list by ID. Returns the list's name, stringid, channel, sender settings and dates, without subscriber counts. Use activecampaign_list_lists for subscriber counts.
Inputs
list_idstringrequired- ID of the list.
activecampaign_get_pipelineRetrieve one deal pipeline by ID.Read-onlyGet Pipeline
Retrieve one deal pipeline by ID. Returns the pipeline's title, currency, auto-assign settings and stages. Use activecampaign_list_pipelines to find the ID.
Inputs
pipeline_idstringrequired- ID of the pipeline.
activecampaign_get_tagRetrieve one tag definition by ID.Read-onlyGet Tag
Retrieve one tag definition by ID. Returns the tag's id, tag (name), tagType, description and dates. Use activecampaign_list_tags with name to look a tag up by name.
Inputs
tag_idintegerrequired- ID of the tag.
activecampaign_get_userRetrieve one user by ID.Read-onlyGet User
Retrieve one user by ID. Returns the user's username, name, email and phone. Use activecampaign_get_current_user for the user whose API key is connected.
Inputs
user_idintegerrequired- ID of the user.
activecampaign_list_account_contactsList contact-to-account associations, optionally for one contact or one account.Read-onlyList Account Contacts
List contact-to-account associations, optionally for one contact or one account. Returns accountContacts rows with id, account, contact and jobTitle. Use this to list an account's contacts. Use activecampaign_get_contact_account_contacts for one contact.
Inputs
account_idinteger- Return associations of this account ID.
contact_idinteger- Return associations of this contact ID.
limitinteger- Maximum number of associations to return in one page. The API default is 20 and the maximum is 100.
offsetinteger- Number of associations to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
activecampaign_list_account_custom_field_valuesList stored account custom field values, optionally for one account.Read-onlyList Account Custom Field Values
List stored account custom field values, optionally for one account. Returns accountCustomFieldData with id, customerAccountId, customFieldId and fieldValue. Use this to read account custom fields and to find the value ID for activecampaign_update_account_custom_field_value.
Inputs
account_idstring- Return only values of this account ID.
limitinteger- Maximum number of values to return in one page. The API default is 20 and the maximum is 100.
offsetinteger- Number of values to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
activecampaign_list_account_custom_fieldsList account custom field definitions.Read-onlyList Account Custom Fields
List account custom field definitions. Returns accountCustomFieldMeta with id, fieldLabel, fieldType and options. Use this to find customFieldId values for account custom fields.
Inputs
limitinteger- Maximum number of fields to return (API default 100).
offsetinteger- Number of fields to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
activecampaign_list_accountsList accounts (companies), optionally searching by name.Read-onlyList Accounts
List accounts (companies), optionally searching by name. Returns accounts with id, name, accountUrl, owner and, when requested, contactCount and dealCount. Use this to find an account ID. Use activecampaign_get_account for one account.
Inputs
count_dealsboolean- Set to true to include accurate contactCount and dealCount per account.
limitinteger- Maximum number of accounts to return in one page. The API default is 20 and the maximum is 100.
offsetinteger- Number of accounts to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
searchstring- Return accounts whose name matches this text.
activecampaign_list_automation_contactsList the contacts that are in, or have run through, one automation.Read-onlyList Automation Contacts
List the contacts that are in, or have run through, one automation. Returns contactAutomations rows with contact, status (1 in progress, 2 ended), adddate and lastblock. Use this for one automation. Use activecampaign_get_contact_automations for one contact.
Inputs
automation_idintegerrequired- ID of the automation.
contact_idinteger- Return only the row for this contact ID.
limitinteger- Maximum number of rows to return in one page. The API default is 20 and the maximum is 100.
offsetinteger- Number of rows to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
order_by_addedstring- Sort by the date the contact entered the automation: asc or desc.one of
ascdesc statusinteger- Run status: 1 in progress, 2 ended.one of
12
activecampaign_list_automationsList the account's automations.Read-onlyList Automations
List the account's automations. Returns automations with id, name, status, entered and exited counts, cdate and mdate. Use this to find an automation ID before activecampaign_add_contact_to_automation or activecampaign_list_automation_contacts.
Inputs
limitinteger- Maximum number of automations to return in one page. The API default is 20 and the maximum is 100.
offsetinteger- Number of automations to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
activecampaign_list_campaignsList email campaigns, optionally only those belonging to one automation.Read-onlyList Campaigns
List email campaigns, optionally only those belonging to one automation. Returns campaigns with id, name, type, status, sdate, ldate and send, open, click and bounce counts. Use this to find campaigns and their totals. Use activecampaign_get_campaign for one campaign.
Inputs
automation_idinteger- Return only campaigns that belong to this automation ID.
limitinteger- Maximum number of campaigns to return in one page. The API default is 20 and the maximum is 100.
offsetinteger- Number of campaigns to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
order_by_last_send_datestring- Sort by last send date: ASC or DESC.one of
ASCDESC order_by_send_datestring- Sort by send date: ASC or DESC.one of
ASCDESC
activecampaign_list_contact_activitiesList the activity feed of one contact: emails sent, opens, clicks, list and automation changes, notes and more.Read-onlyList Contact Activities
List the activity feed of one contact: emails sent, opens, clicks, list and automation changes, notes and more. Returns activities with tstamp, reference_type, reference_action and the referenced record. Always pass contact_id; without it the read scans every activity on the account and can take minutes.
Inputs
afterstring- Return only entries recorded after this date and time (for example 2026-01-01 or 2026-01-01T00:00:00-05:00).
contact_idinteger- ID of the contact whose activity feed to read. Strongly recommended: without it the request reads the whole account.
includestring- Comma-separated related records to attach, for example notes,reference.
limitinteger- Maximum number of activities to return in one page. The API default is 20 and the maximum is 100.
offsetinteger- Number of activities to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
order_by_timestring- Sort by when the activity happened: asc (oldest first) or desc (newest first).one of
ascdesc typestring- Comma-separated activity kinds to return, for example log,contact-list,contact-automation,note.
activecampaign_list_contact_automationsList contact-to-automation rows across the account.Read-onlyList Contact Automations
List contact-to-automation rows across the account. Returns contactAutomations rows with contact, automation, status and adddate, plus meta.total. Use activecampaign_list_automation_contacts for one automation or activecampaign_get_contact_automations for one contact.
Inputs
limitinteger- Maximum number of rows to return in one page. The API default is 20 and the maximum is 100.
offsetinteger- Number of rows to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
activecampaign_list_contact_custom_fieldsList contact custom field definitions, optionally filtered by title, type or list.Read-onlyList Contact Custom Fields
List contact custom field definitions, optionally filtered by title, type or list. Returns fields with id, title, type, perstag and options, plus side-loaded fieldOptions and fieldRels. Use this to find custom field IDs before setting field values on contacts.
Inputs
allstring- Pass 1 to return every field in one response, ignoring limit and offset.one of
1 limitinteger- Maximum number of fields per page. Default 20, maximum 500.
list_idsstring- Comma-separated list IDs; returns fields related to those lists or to all lists.
offsetinteger- Number of fields to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
searchstring- Return fields whose title contains this text.
titlestring- Return only fields with exactly this title.
typestring- Comma-separated field types to return, for example dropdown,listbox.
activecampaign_list_contact_field_valuesList stored contact custom field values across contacts, optionally for one field or value.Read-onlyList Contact Field Values
List stored contact custom field values across contacts, optionally for one field or value. Returns fieldValues entries with contact, field, value and the entry id, plus meta.total. Use activecampaign_get_contact_field_values for all values of one contact.
Inputs
field_idstring- Return only values of this custom field ID.
idsstring- Comma-separated fieldValue IDs to return.
limitinteger- Maximum number of values to return in one page. The API default is 20 and the maximum is 100.
offsetinteger- Number of values to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
valuestring- Return only values exactly equal to this text.
activecampaign_list_contactsList, search and filter contacts by email, text, list, tag, segment, automation or date.Read-onlyList Contacts
List, search and filter contacts by email, text, list, tag, segment, automation or date. Returns contact records (id, email, firstName, lastName, phone, cdate, udate) and meta.total. Use this to find contacts or look one up by email. Use activecampaign_get_contact when you already have the contact ID.
Inputs
account_idinteger- Return contacts that belong to this account (account ID from list_accounts).
automation_idinteger- Return contacts associated with this automation (automation ID from list_automations).
created_afterstring- Return contacts created after this date (YYYY-MM-DD or ISO 8601).
created_beforestring- Return contacts created before this date (YYYY-MM-DD or ISO 8601).
emailstring- Return only the contact with this exact email address.
email_likestring- Return contacts whose email address contains this text.
form_idinteger- Return contacts associated with this form.
id_greaterinteger- Return only contacts with an ID greater than this. With order_by_id=asc this is the fastest way to page through large contact sets.
idsstring- Comma-separated contact IDs to return.
limitinteger- Maximum number of contacts to return in one page. The API default is 20 and the maximum is 100.
list_idstring- Return contacts on this list (list ID from list_lists). Combine with status to filter by subscription status on that list.
offsetinteger- Number of contacts to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
order_by_createdstring- Sort by creation date: asc or desc.one of
ascdesc order_by_emailstring- Sort by email address: asc or desc.one of
ascdesc order_by_idstring- Sort by contact ID: asc or desc.one of
ascdesc order_by_updatedstring- Sort by last-updated date: asc or desc.one of
ascdesc phonestring- Return contacts whose stored phone number starts with this value, compared exactly as stored (including country code and punctuation).
searchstring- Free-text search. A full email address matches the contact's email exactly; any other value matches email, first name, last name, phone and account name.
segment_idinteger- Return contacts matching this segment. While set, only status and search still apply; other filters are ignored.
statusinteger- List-membership status filter: -1 any (API default), 0 unconfirmed, 1 active, 2 unsubscribed, 3 bounced. Combine with list_id to check status on one list.one of
-10123 tag_idinteger- Return contacts that have this tag (tag ID from list_tags). Cannot be combined with tag_name.
tag_namestring- Return contacts that have this tag, by tag name instead of ID. Cannot be combined with tag_id.
updated_afterstring- Return contacts last modified after this date (YYYY-MM-DD or ISO 8601). List, tag, custom field and score changes also update this date.
updated_beforestring- Return contacts last modified before this date (YYYY-MM-DD or ISO 8601).
activecampaign_list_custom_object_recordsList the records of one custom object schema.Read-onlyList Custom Object Records
List the records of one custom object schema. Returns records with id, externalId, fields and relationships. Use activecampaign_list_custom_object_schemas to find the schema ID.
Inputs
schema_idstringrequired- ID of the custom object schema.
limitinteger- Maximum number of records to return in one page. The API default is 20 and the maximum is 100.
offsetinteger- Number of records to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
activecampaign_list_custom_object_schemasList custom object schemas (custom record types) defined in the account.Read-onlyList Custom Object Schemas
List custom object schemas (custom record types) defined in the account. Returns schemas with id, slug, labels, fields and relationships. Use this to find a schema ID before activecampaign_list_custom_object_records.
Inputs
limitinteger- Maximum number of schemas to return in one page. The API default is 20 and the maximum is 100.
offsetinteger- Number of schemas to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
show_fieldsstring- Pass all to also show fields hidden because they are marked for deletion.one of
all
activecampaign_list_deal_activitiesList recent deal activity (stage changes, notes, tasks, emails), optionally for one deal.Read-onlyList Deal Activities
List recent deal activity (stage changes, notes, tasks, emails), optionally for one deal. Returns dealActivities with deal, dataType, dataId, dataAction and cdate. Use this to see a deal's history.
Inputs
data_typestring- Return only activity of this data type, for example note, task or userid.
deal_idstring- Return only activity of this deal ID.
limitinteger- Maximum number of activities to return in one page. The API default is 20 and the maximum is 100.
offsetinteger- Number of activities to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
activecampaign_list_deal_custom_field_valuesList stored deal custom field values, optionally for one deal.Read-onlyList Deal Custom Field Values
List stored deal custom field values, optionally for one deal. Returns dealCustomFieldData with id, dealId, customFieldId and fieldValue. Use this to read deal custom fields and to find the value ID for activecampaign_update_deal_custom_field_value.
Inputs
deal_idstring- Return only values of this deal ID.
limitinteger- Maximum number of values to return in one page. The API default is 20 and the maximum is 100.
offsetinteger- Number of values to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
activecampaign_list_deal_custom_fieldsList deal custom field definitions.Read-onlyList Deal Custom Fields
List deal custom field definitions. Returns dealCustomFieldMeta with id, fieldLabel, fieldType and options. Use this to find customFieldId values for deal custom fields.
Inputs
limitinteger- Maximum number of fields to return (API default 100).
offsetinteger- Number of fields to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
activecampaign_list_deal_secondary_contactsList secondary contacts linked to deals.Read-onlyList Deal Secondary Contacts
List secondary contacts linked to deals. Returns contactDeals rows with deal, contact and role. Use activecampaign_get_deal for a deal's primary contact.
Inputs
limitinteger- Maximum number of rows to return in one page. The API default is 20 and the maximum is 100.
offsetinteger- Number of rows to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
activecampaign_list_deal_stagesList deal stages, optionally for one pipeline or by title.Read-onlyList Deal Stages
List deal stages, optionally for one pipeline or by title. Returns dealStages with id, title, group (pipeline ID), order and color. Use this to find stage IDs for activecampaign_create_deal or activecampaign_update_deal.
Inputs
limitinteger- Maximum number of stages to return in one page. The API default is 20 and the maximum is 100.
offsetinteger- Number of stages to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
pipeline_idstring- Return only stages of this pipeline ID.
titlestring- Return stages whose title contains this text.
activecampaign_list_deal_task_typesList the account's CRM task types (for example Call, Email, Meeting).Read-onlyList Task Types
List the account's CRM task types (for example Call, Email, Meeting). Returns dealTasktypes with id and title. Use this to find the task_type_id for activecampaign_create_deal_task.
Inputs
limitinteger- Maximum number of task types to return in one page. The API default is 20 and the maximum is 100.
offsetinteger- Number of task types to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
activecampaign_list_deal_tasksList CRM tasks on deals and contacts, filtered by related record, status, type, assignee or due date.Read-onlyList Tasks
List CRM tasks on deals and contacts, filtered by related record, status, type, assignee or due date. Returns dealTasks with id, title, note, duedate, status, relid, reltype and assignee. Use this to find open or overdue tasks. Use activecampaign_get_deal_task for one task.
Inputs
assignee_idinteger- Return tasks assigned to this user ID.
due_afterstring- Return tasks due after this date (YYYY-MM-DD).
duedate_rangestring- A YYYY-MM-DD+YYYY-MM-DD date range, or upcoming, scheduled or overdue.
limitinteger- Maximum number of tasks to return in one page. The API default is 20 and the maximum is 100.
offsetinteger- Number of tasks to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
relidinteger- ID of the deal or contact the tasks belong to.
reltypestring- Type of record the tasks belong to: Deal or Subscriber (contact).
statusinteger- Task status: 0 incomplete, 1 complete.one of
01 task_type_idinteger- Return tasks of this task type ID.
activecampaign_list_dealsList and search deals by text, pipeline, stage, status, owner, value or date.Read-onlyList Deals
List and search deals by text, pipeline, stage, status, owner, value or date. Returns deals with id, title, value (cents), currency, group (pipeline), stage, owner, status and meta.total. Use this to find deals. Use activecampaign_get_deal for one deal and activecampaign_get_contact_deals for one contact's deals.
Inputs
created_afterstring- Return deals created on or after this date (YYYY-MM-DD).
created_beforestring- Return deals created before this date (YYYY-MM-DD).
limitinteger- Maximum number of deals to return in one page. The API default is 20 and the maximum is 100.
maximum_valueinteger- Return deals worth at most this many dollars (whole USD).
minimum_valueinteger- Return deals worth at least this many dollars (whole USD).
next_taskstring- Task due-date filter: upcoming (due within 24 hours), scheduled (later), overdue or no-task.one of
upcomingscheduledoverdueno-task offsetinteger- Number of deals to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
order_by_createdstring- Sort by creation date: ASC or DESC.one of
ASCDESC order_by_titlestring- Sort by deal title: ASC or DESC.one of
ASCDESC order_by_valuestring- Sort by deal value: ASC or DESC.one of
ASCDESC owner_idinteger- Return deals owned by this user ID.
pipeline_idinteger- Return deals in this pipeline ID.
searchstring- Search text, matched against the field chosen in search_field.
search_fieldstring- Field the search text is matched against: all (title, contact and org), title, contact or org.one of
alltitlecontactorg stage_idinteger- Return deals in this stage ID.
statusinteger- Deal status: 0 open, 1 won, 2 lost.one of
012 tagstring- Primary-contact tag filter: a tag ID (deals whose primary contact has that tag), -1 (any tag) or -2 (no tag).
titlestring- Return deals with this title.
updated_afterstring- Return deals updated on or after this date (YYYY-MM-DD).
updated_beforestring- Return deals updated before this date (YYYY-MM-DD).
activecampaign_list_ecom_connectionsList the store connections (integrations such as Shopify) that sync e-commerce data.Read-onlyList E-commerce Connections
List the store connections (integrations such as Shopify) that sync e-commerce data. Returns connections with id, service, externalid, name and status. Use this to find a connection ID for e-commerce customers and orders.
Inputs
limitinteger- Maximum number of connections to return in one page. The API default is 20 and the maximum is 100.
offsetinteger- Number of connections to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
servicestring- Return connections for this external service name.
activecampaign_list_ecom_customersList e-commerce customers synced from connected stores, optionally by email or store connection.Read-onlyList E-commerce Customers
List e-commerce customers synced from connected stores, optionally by email or store connection. Returns ecomCustomers with id, connectionid, externalid, email, totalRevenue and totalOrders. Use activecampaign_list_contacts for marketing contacts; e-commerce customers are separate records linked by email.
Inputs
connection_idstring- Return customers of this store connection ID, from list_ecom_connections.
emailstring- Return customers with this email address.
external_idstring- Return the customer with this ID in the external store.
limitinteger- Maximum number of customers to return in one page. The API default is 20 and the maximum is 100.
offsetinteger- Number of customers to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
activecampaign_list_ecom_ordersList e-commerce orders, filtered by customer email, state, customer or store connection.Read-onlyList E-commerce Orders
List e-commerce orders, filtered by customer email, state, customer or store connection. Returns ecomOrders with id, externalid, email, totalPrice, currency, state and order dates. Use activecampaign_get_ecom_order for one order.
Inputs
connection_idinteger- Return orders of this store connection ID.
customer_idstring- Return orders of this e-commerce customer ID.
emailstring- Return orders of this customer email.
limitinteger- Maximum number of orders to return in one page. The API default is 20 and the maximum is 100.
offsetinteger- Number of orders to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
order_by_createdstring- Sort by the store's order creation date: ASC or DESC.one of
ASCDESC stateinteger- Order state: 0 pending, 1 completed, 2 abandoned, 3 recovered, 4 waiting for payment.one of
01234
activecampaign_list_email_activitiesList one-to-one email activity (emails sent and received through the CRM), optionally for one contact or deal.Read-onlyList Email Activities
List one-to-one email activity (emails sent and received through the CRM), optionally for one contact or deal. Returns emailActivities with subject, from, to, date and the related contact and deal. Use activecampaign_list_contact_activities for a contact's full activity feed.
Inputs
contact_idinteger- Return only email activities of this contact ID.
deal_idinteger- Return only email activities of this deal ID.
limitinteger- Maximum number of activities to return in one page. The API default is 20 and the maximum is 100.
offsetinteger- Number of activities to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
activecampaign_list_formsList the account's subscription forms.Read-onlyList Forms
List the account's subscription forms. Returns forms with id, name, action and the lists and tags they apply. Use the form ID with activecampaign_list_contacts form_id to find contacts who used a form.
Inputs
limitinteger- Maximum number of forms to return in one page. The API default is 20 and the maximum is 100.
offsetinteger- Number of forms to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
activecampaign_list_listsList the account's contact lists, optionally filtered by name or channel.Read-onlyList Lists
List the account's contact lists, optionally filtered by name or channel. Returns lists with id, name, stringid, active_subscribers, non_deleted_subscribers and meta.total. Use this to find list IDs or subscriber counts. Use activecampaign_get_list for one list's settings.
Inputs
channelstring- Which channel's lists to return: email (API default), sms or all.one of
emailsmsall limitinteger- Maximum number of lists to return in one page. The API default is 20 and the maximum is 100.
namestring- Return lists with this name.
offsetinteger- Number of lists to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
activecampaign_list_messagesList email messages (the content records that campaigns send).Read-onlyList Messages
List email messages (the content records that campaigns send). Returns messages with id, subject, fromname, fromemail, reply2, text and html. Use this to read email content. Use activecampaign_list_campaigns for campaign status and totals.
Inputs
limitinteger- Maximum number of messages to return in one page. The API default is 20 and the maximum is 100.
offsetinteger- Number of messages to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
activecampaign_list_notesList notes across contacts, deals, tasks and accounts.Read-onlyList Notes
List notes across contacts, deals, tasks and accounts. Returns notes with id, note text, reltype, relid, userid, cdate and mdate. Use activecampaign_get_contact_notes for one contact's notes.
Inputs
limitinteger- Maximum number of notes to return in one page. The API default is 20 and the maximum is 100.
offsetinteger- Number of notes to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
activecampaign_list_pipelinesList deal pipelines, optionally filtered by title.Read-onlyList Pipelines
List deal pipelines, optionally filtered by title. Returns dealGroups (pipelines) with id, title, currency and their stages. Use this to find pipeline IDs for activecampaign_create_deal and activecampaign_list_deal_stages.
Inputs
have_stagesinteger- 1 returns only pipelines that have at least one stage.one of
01 limitinteger- Maximum number of pipelines to return in one page. The API default is 20 and the maximum is 100.
offsetinteger- Number of pipelines to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
titlestring- Return pipelines whose title contains this text.
activecampaign_list_segmentsList saved segments (condition sets used to target contacts).Read-onlyList Segments
List saved segments (condition sets used to target contacts). Conditions themselves are not returned. Returns segments with id, name and seriesid. Use a segment ID with activecampaign_list_contacts segment_id to get matching contacts.
Inputs
idsstring- Comma-separated segment IDs to return.
limitinteger- Maximum number of segments to return in one page. The API default is 20 and the maximum is 100.
offsetinteger- Number of segments to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
activecampaign_list_templatesList email templates, optionally filtered by name or category.Read-onlyList Email Templates
List email templates, optionally filtered by name or category. Returns templates with id, name, categoryid, mdate and preview details, plus meta.total. Use this to find a template for a campaign.
Inputs
category_idinteger- Return templates in this category ID.
limitinteger- Maximum number of templates to return in one page. The API default is 20 and the maximum is 100.
namestring- Return templates whose name contains this text.
offsetinteger- Number of templates to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
activecampaign_list_tracked_eventsList the names of events registered for event tracking.Read-onlyList Tracked Event Names
List the names of events registered for event tracking. Returns eventTrackingEvents with name. Use this to see which custom events the account tracks.
Inputs
limitinteger- Maximum number of events to return in one page. The API default is 20 and the maximum is 100.
offsetinteger- Number of events to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
activecampaign_list_usersList the account's users (team members who log in to ActiveCampaign).Read-onlyList Users
List the account's users (team members who log in to ActiveCampaign). Returns users with id, username, firstName, lastName and email. Use this to find owner or assignee IDs for deals, tasks and accounts.
Inputs
limitinteger- Maximum number of users to return in one page. The API default is 20 and the maximum is 100.
offsetinteger- Number of users to skip before the page starts (zero-based). Increase it by limit to fetch the next page; meta.total in the response holds the total count.
activecampaign_add_contact_to_automationAdd a contact to an automation, starting it at the automation's first step.WriteAdd Contact to Automation
Add a contact to an automation, starting it at the automation's first step. Returns the contactAutomation row; its id is what activecampaign_remove_contact_from_automation needs. Use activecampaign_list_automations to find the automation ID.
Inputs
automation_idintegerrequired- ID of the automation, from list_automations.
contact_idintegerrequired- ID of the contact.
activecampaign_add_tag_to_contactApply an existing tag to a contact.WriteAdd Tag to Contact
Apply an existing tag to a contact. Returns the contactTag association (id, contact, tag); HTTP 200 if the tag was already applied. Use activecampaign_list_tags or activecampaign_create_tag first to get the tag ID; tag names are not accepted here.
Inputs
contact_idintegerrequired- ID of the contact to tag.
tag_idintegerrequired- ID of the tag to apply, from list_tags or create_tag. Not the tag name.
activecampaign_bulk_import_contactsCreate or update up to 250 contacts in one asynchronous request, matched by email, with per-contact lists, tags and custom fields.WriteBulk Import Contacts
Create or update up to 250 contacts in one asynchronous request, matched by email, with per-contact lists, tags and custom fields. Returns a batchId; the import is only done once activecampaign_get_bulk_import_status reports it completed. Use this for many contacts at once. Use activecampaign_sync_contact for a single contact.
Inputs
contactsarrayrequired- Contacts to import (1 to 250). Each needs an email (or email_hash) and may carry first_name, last_name, phone, customer_acct_name (account name), tags (array of tag names, created if missing), fields (array of {id, value} with custom field IDs), subscribe and unsubscribe (arrays of {listid}). Example: [{"email": "sam@example.com", "first_name": "Sam", "tags": ["newsletter"], "subscribe": [{"listid": 1}]}].
callbackobject- Optional callback request made when the import finishes, with url and requestType (GET or POST), and optionally detailed_results, params and headers. Example: {"url": "https://example.com/import-done", "requestType": "POST", "detailed_results": "true"}.
enable_contacts_without_emailboolean- Set to true to allow contacts identified by phone number only.
exclude_automationsboolean- Set to true so the import does not start automations for the imported contacts.
send_webhooksboolean- Set to false to suppress webhooks for the imported contacts.
activecampaign_create_accountCreate an account (company).WriteCreate Account
Create an account (company). Returns the new account with its id. Use activecampaign_create_account_contact afterwards to link contacts to it.
Inputs
namestringrequired- Account (company) name.
account_urlstring- Account website.
fieldsarray- Account custom field values as an array of {customFieldId, fieldValue, fieldCurrency}. Example: [{"customFieldId": 9, "fieldValue": "500-1000"}].
ownerinteger- User ID of the account owner.
activecampaign_create_account_contactLink a contact to an account, with an optional job title.WriteLink Contact to Account
Link a contact to an account, with an optional job title. Returns the accountContact association with its id. Use activecampaign_delete_account_contact to remove the link.
Inputs
account_idintegerrequired- ID of the account.
contact_idintegerrequired- ID of the contact.
job_titlestring- The contact's job title at the account.
activecampaign_create_account_noteAdd a note to an account.WriteCreate Account Note
Add a note to an account. Returns the new note with its id. Use activecampaign_create_note for contact or task notes.
Inputs
account_idstringrequired- ID of the account.
notestringrequired- Text of the note.
activecampaign_create_contactCreate a new contact.WriteCreate Contact
Create a new contact. Fails with a 422 duplicate error if a contact with the same email already exists. Returns the created contact (with its new id) and any fieldValues set. Use activecampaign_sync_contact to create or update by email. Use activecampaign_add_tag_to_contact and activecampaign_update_contact_list_status for tags and lists.
Inputs
emailstringrequired- Email address of the contact. Example: jane.doe@example.com.
field_valuesarray- Custom field values to set, as an array of objects with field (the custom field ID from list_contact_custom_fields) and value. Multi-select values use the ||option 1||option 2|| format. Example: [{"field": "1", "value": "Blue"}].
first_namestring- First name of the contact.
last_namestring- Last name of the contact.
phonestring- Phone number of the contact, as a string. Example: +1 555-555-5555.
activecampaign_create_contact_custom_fieldCreate a contact custom field, optionally with its options and list relationships in the same request.WriteCreate Contact Custom Field
Create a contact custom field, optionally with its options and list relationships in the same request. Returns the field with its id and any created fieldOptions and fieldRels. Fails with 422 if another field already uses the title.
Inputs
titlestringrequired- Title of the field.
typestringrequired- Field type.one of
texttextareadatedatetimedropdownlistboxradiocheckboxhidden defvalstring- Default value of the field.
descriptstring- Description of the field.
optionsarray- Options for dropdown, listbox, radio and checkbox fields (max 25), each with value and optional label, orderid and isdefault. Example: [{"value": "blue", "label": "Blue"}].
ordernuminteger- Position of the field in the My Fields tab.
perstagstring- Personalization tag used to insert the value in emails, for example FAVORITE_COLOR.
relationsarray- Lists to relate the field to (max 25), each as {relid}; relid 0 means every list. Example: [{"relid": 0}].
visibleboolean- Whether the field is shown in the Form Builder.
activecampaign_create_dealCreate a deal in a pipeline stage, linked to a contact or an account.WriteCreate Deal
Create a deal in a pipeline stage, linked to a contact or an account. Returns the new deal with its id. Send contact_id or account_id, and pipeline_id or stage_id. Use activecampaign_list_pipelines and activecampaign_list_deal_stages to find IDs.
Inputs
currencystringrequired- Three-letter ISO currency code in lowercase, for example usd.
titlestringrequired- Deal title.
valueintegerrequired- Deal value in cents, for example 45678 for 456.78. Must be zero or more.
account_idstring- ID of the deal's account. Required if contact_id is not set.
contact_idstring- ID of the deal's primary contact. Required if account_id is not set.
descriptionstring- Deal description.
fieldsarray- Deal custom field values as an array of {customFieldId, fieldValue, fieldCurrency}; currency values are in cents. Example: [{"customFieldId": 1, "fieldValue": "Enterprise"}].
owner_idstring- User ID of the deal owner, from list_users. Required if the pipeline's auto-assign is disabled.
percentinteger- Win probability percentage.
pipeline_idstring- ID of the deal's pipeline, from list_pipelines. Required if stage_id is not set.
stage_idstring- ID of the deal's stage, from list_deal_stages. Required if pipeline_id is not set; defaults to the pipeline's first stage.
statusinteger- Deal status: 0 open, 1 won, 2 lost.one of
012
activecampaign_create_deal_noteAdd a note to a deal.WriteCreate Deal Note
Add a note to a deal. Returns the new note with its id. Use activecampaign_create_note to add notes to contacts, accounts or tasks.
Inputs
deal_idstringrequired- ID of the deal.
notestringrequired- Text of the note.
activecampaign_create_deal_secondary_contactLink a contact to a deal as a secondary contact.WriteAdd Deal Secondary Contact
Link a contact to a deal as a secondary contact. Returns the contactDeal row with its id. Use activecampaign_update_deal to change the primary contact.
Inputs
contact_idstringrequired- ID of the contact.
deal_idstringrequired- ID of the deal.
activecampaign_create_deal_stageAdd a stage to a deal pipeline.WriteCreate Deal Stage
Add a stage to a deal pipeline. Returns the new stage with its id. Use activecampaign_list_pipelines to find the pipeline ID.
Inputs
pipeline_idstringrequired- ID of the pipeline the stage belongs to.
titlestringrequired- Stage title.
colorstring- Stage color as a 6-character hex code without #.
deal_orderstring- How deals are sorted in the stage: a field and direction separated by a space, for example next-action DESC or title ASC.
orderinteger- Position of the stage within the pipeline.
reorderinteger- 1 reassigns order values to every stage in the pipeline after this change.one of
01 widthinteger- Stage column width in pixels.
activecampaign_create_deal_taskCreate a CRM task on a deal or contact.WriteCreate Task
Create a CRM task on a deal or contact. Returns the new task with its id. Use activecampaign_list_deal_task_types to find the task type ID.
Inputs
duedatestringrequired- Due date and time in ISO 8601, for example 2026-11-02T12:00:00-05:00.
relidintegerrequired- ID of the deal or contact the task belongs to (see owner_type).
task_type_idintegerrequired- Task type ID, from list_deal_task_types.
assigneeinteger- User ID the task is assigned to.
notestring- Task description.
owner_typestring- What relid refers to: deal or contact.one of
dealcontact statusinteger- Task status: 0 incomplete, 1 complete.one of
01 titlestring- Task title.
activecampaign_create_ecom_customerCreate an e-commerce customer for a store connection.WriteCreate E-commerce Customer
Create an e-commerce customer for a store connection. Returns the new ecomCustomer with its id. Use activecampaign_list_ecom_connections to find the connection ID.
Inputs
connection_idstringrequired- ID of the store connection the customer belongs to.
emailstringrequired- The customer's email address.
external_idstringrequired- The customer's ID in the external store.
accepts_marketingstring- 1 if the customer opted in to marketing, 0 if not.one of
01
activecampaign_create_listCreate a contact list.WriteCreate List
Create a contact list. Returns the new list with its id. Use activecampaign_update_contact_list_status afterwards to subscribe contacts to it.
Inputs
namestringrequired- Name of the list.
sender_reminderstringrequired- Reminder shown to contacts explaining why they are on this list.
sender_urlstringrequired- The website URL this list is for.
stringidstringrequired- URL-safe list name, for example monthly-newsletter.
carboncopystring- Comma-separated email addresses that receive a copy of every mailing to this list.
channelstring- List channel: email (default) or sms.one of
emailsms send_last_broadcastboolean- Whether to send the last campaign sent to this list to each new subscriber.
subscription_notifystring- Comma-separated email addresses notified when someone subscribes.
unsubscription_notifystring- Comma-separated email addresses notified when someone unsubscribes.
userinteger- User ID of the list owner, from list_users.
activecampaign_create_noteAdd a note to a contact, deal, task, activity or account.WriteCreate Note
Add a note to a contact, deal, task, activity or account. Returns the new note with its id. Use reltype Subscriber with the contact ID in relid to note a contact.
Inputs
notestringrequired- Text of the note.
relidintegerrequired- ID of the record the note is attached to.
reltypestringrequired- Type of record the note is attached to: Subscriber (contact), Deal, DealTask, Activity or CustomerAccount (account).one of
SubscriberDealDealTaskActivityCustomerAccount
activecampaign_create_pipelineCreate a deal pipeline.WriteCreate Pipeline
Create a deal pipeline. Returns the new pipeline with its id. Use activecampaign_create_deal_stage afterwards to add stages to it.
Inputs
currencystringrequired- Default currency for new deals in this pipeline, lowercase ISO code.
titlestringrequired- Pipeline title.
allgroupsinteger- 1 lets every user group manage the pipeline; 0 limits it to the groups in groups.one of
01 allusersinteger- 1 auto-assigns new deals across all users (unless auto-assign is off); 0 uses the users list.one of
01 autoassigninteger- Deal auto-assign mode: 0 disabled, 1 round robin, 2 deal value.one of
012 groupsarray- User group IDs allowed to manage the pipeline.
usersarray- User IDs to auto-assign new deals to.
activecampaign_create_tagCreate a tag definition.WriteCreate Tag
Create a tag definition. If a tag with the same name and type exists, that tag is returned instead. Returns the tag with its id. Use activecampaign_add_tag_to_contact afterwards to apply it to a contact.
Inputs
namestringrequired- Tag name: 1 to 250 characters, no commas, line breaks or HTML.
tag_typestringrequired- Tag type: contact or template. Send it on create; tags created without a type do not appear in list_tags.one of
contacttemplate descriptionstring- Description of the tag.
activecampaign_duplicate_campaignCreate a copy of an existing campaign.WriteDuplicate Campaign
Create a copy of an existing campaign. Returns the new campaign's ID. Use this to reuse a campaign's content and settings as a new draft.
Inputs
campaign_idintegerrequired- ID of the source campaign.
activecampaign_merge_contactsMerge a source contact into a destination contact, then delete the source.WriteMerge Contacts
Merge a source contact into a destination contact, then delete the source. Cannot be undone. Returns the merge result; the destination keeps its ID and gains the source's lists, tags, automations, deals and notes. Use this to remove duplicate contacts. Requires the merge-contacts permission.
Inputs
destinationintegerrequired- ID of the contact that survives the merge.
sourceintegerrequired- ID of the contact to merge in. This contact is deleted after the merge.
resolution_automation_idinteger- ID of the contact (source or destination) whose automation membership wins where both are in the same automation.
resolution_field_idinteger- ID of the contact (source or destination) whose custom field values win where both have a value.
activecampaign_move_deals_to_stageMove every deal in one stage to another stage.WriteMove Deals to Stage
Move every deal in one stage to another stage. Returns the result of the move. Use activecampaign_update_deal to move a single deal.
- Idempotent
Inputs
stage_idintegerrequired- ID of the deal stage.
target_stage_idstringrequired- ID of the stage to move the deals to.
activecampaign_pause_campaignPause a campaign that is currently sending (status 3, paused).WritePause Campaign
Pause a campaign that is currently sending (status 3, paused). Returns succeeded (1 or 0) and a message; rule failures return HTTP 200 with succeeded 0. Use activecampaign_resume_campaign to continue sending, or activecampaign_stop_campaign to end it.
- Idempotent
Inputs
campaign_idintegerrequired- ID of the campaign.
activecampaign_resume_campaignResume a paused campaign so it continues sending (status 2, sending).WriteResume Campaign
Resume a paused campaign so it continues sending (status 2, sending). Returns succeeded (1 or 0) and a message; rule failures return HTTP 200 with succeeded 0. Only a paused campaign can be resumed.
- Idempotent
Inputs
campaign_idintegerrequired- ID of the campaign.
activecampaign_schedule_campaignEnable a draft or disabled campaign for sending at its existing scheduled date (status 1, scheduled).WriteSchedule Campaign
Enable a draft or disabled campaign for sending at its existing scheduled date (status 1, scheduled). Returns succeeded (1 or 0) and a message; rule failures return HTTP 200 with succeeded 0. The send date cannot be set here; it must already be set on the campaign.
- Idempotent
Inputs
campaign_idintegerrequired- ID of the campaign.
activecampaign_set_account_custom_field_valueSet an account's value for one custom field.WriteSet Account Custom Field Value
Set an account's value for one custom field. Returns the stored accountCustomFieldDatum with its id. Use activecampaign_list_account_custom_fields to find the field ID.
Inputs
account_idintegerrequired- ID of the account.
custom_field_idintegerrequired- ID of the account custom field.
field_valuestringrequired- Value to store. Currency fields take cents.
field_currencystring- Three-letter currency code, for currency fields only.
activecampaign_set_contact_field_valueSet a contact's value for one custom field.WriteSet Contact Field Value
Set a contact's value for one custom field. Creates the value, or updates it if the contact already has one. Returns the fieldValue (HTTP 201 when created, 200 when updated). Use this to set one field. Use activecampaign_update_contact with field_values to set several at once.
Inputs
contact_idstringrequired- ID of the contact.
field_idstringrequired- ID of the custom field, from list_contact_custom_fields.
valuestringrequired- Value to store. Multi-select fields (checkbox, listbox) use ||option 1||option 2||; dates use YYYY-MM-DD.
use_defaultsboolean- If true, other required fields the contact is missing are filled with their default values.
activecampaign_set_deal_custom_field_valueSet a deal's value for one custom field.WriteSet Deal Custom Field Value
Set a deal's value for one custom field. Returns the stored dealCustomFieldDatum with its id. Use activecampaign_list_deal_custom_fields to find the field ID. Use activecampaign_update_deal with fields to set several at once.
Inputs
custom_field_idintegerrequired- ID of the deal custom field.
deal_idintegerrequired- ID of the deal.
field_valuestringrequired- Value to store. Currency fields take cents, for example 10050 for 100.50.
field_currencystring- Three-letter currency code, for currency fields only.
activecampaign_stop_campaignStop a sending or paused campaign permanently (status 4, stopped).WriteStop Campaign
Stop a sending or paused campaign permanently (status 4, stopped). It cannot be resumed afterwards. Returns succeeded (1 or 0) and a message; rule failures return HTTP 200 with succeeded 0. Use activecampaign_pause_campaign instead if you may want to continue sending later.
- Idempotent
Inputs
campaign_idintegerrequired- ID of the campaign.
activecampaign_sync_contactCreate or update a single contact by email (upsert).WriteSync Contact
Create or update a single contact by email (upsert). Only the fields you send are changed. Returns the contact and its fieldValues; HTTP 201 means created and 200 means updated. Use this when the contact may already exist. Use activecampaign_create_contact only for guaranteed-new contacts, and activecampaign_bulk_import_contacts for many at once.
Inputs
emailstringrequired- Email address of the contact. Example: jane.doe@example.com.
field_valuesarray- Custom field values to set, as an array of objects with field (the custom field ID from list_contact_custom_fields) and value. Multi-select values use the ||option 1||option 2|| format. Example: [{"field": "1", "value": "Blue"}].
first_namestring- First name of the contact.
last_namestring- Last name of the contact.
phonestring- Phone number of the contact, as a string. Example: +1 555-555-5555.
activecampaign_update_accountUpdate an account's name, website, owner or custom field values.WriteUpdate Account
Update an account's name, website, owner or custom field values. Returns the updated account. Use activecampaign_set_account_custom_field_value to set one custom field.
- Idempotent
Inputs
account_idintegerrequired- ID of the account.
account_urlstring- Account website.
fieldsarray- Account custom field values as an array of {customFieldId, fieldValue, fieldCurrency}. Example: [{"customFieldId": 9, "fieldValue": "500-1000"}].
namestring- Account (company) name.
ownerinteger- User ID of the account owner.
activecampaign_update_account_custom_field_valueUpdate one stored account custom field value by its ID.WriteUpdate Account Custom Field Value
Update one stored account custom field value by its ID. Returns the updated accountCustomFieldDatum. Get the value ID from activecampaign_list_account_custom_field_values.
- Idempotent
Inputs
field_valuestringrequired- New value. Currency fields take cents.
value_idintegerrequired- ID of the account custom field value.
field_currencystring- Three-letter currency code, for currency fields only.
activecampaign_update_contactUpdate an existing contact's email, name, phone or custom field values by contact ID.WriteUpdate Contact
Update an existing contact's email, name, phone or custom field values by contact ID. Returns the updated contact and its fieldValues. Use this when you have the contact ID. Use activecampaign_sync_contact to update by email without the ID.
- Idempotent
Inputs
contact_idintegerrequired- ID of the contact.
emailstring- Email address of the contact. Example: jane.doe@example.com.
field_valuesarray- Custom field values to set, as an array of objects with field (the custom field ID from list_contact_custom_fields) and value. Multi-select values use the ||option 1||option 2|| format. Example: [{"field": "1", "value": "Blue"}].
first_namestring- First name of the contact.
last_namestring- Last name of the contact.
phonestring- Phone number of the contact, as a string. Example: +1 555-555-5555.
activecampaign_update_contact_custom_fieldUpdate a contact custom field definition's title, type, description, personalization tag or default value.WriteUpdate Contact Custom Field
Update a contact custom field definition's title, type, description, personalization tag or default value. Returns the updated field. Options and list relationships cannot be changed here.
- Idempotent
Inputs
field_idintegerrequired- ID of the custom field definition (not a field option ID).
defvalstring- Default value of the field.
descriptstring- Description of the field.
ordernumstring- Position of the field in the My Fields tab.
perstagstring- Personalization tag.
titlestring- New title of the field.
typestring- Field type.one of
texttextareadatedatetimedropdownlistboxradiocheckboxhidden visibleboolean- Whether the field is shown in the Form Builder.
activecampaign_update_contact_field_valueUpdate one stored contact custom field value by its fieldValue ID.WriteUpdate Contact Field Value
Update one stored contact custom field value by its fieldValue ID. Returns the updated fieldValue and the contact. The contact and field IDs must be sent along with the new value.
- Idempotent
Inputs
contact_idstringrequired- ID of the contact.
field_idstringrequired- ID of the custom field, from list_contact_custom_fields.
field_value_idstringrequired- ID of the fieldValue record (not a contact or field ID).
valuestringrequired- Value to store. Multi-select fields (checkbox, listbox) use ||option 1||option 2||; dates use YYYY-MM-DD.
use_defaultsboolean- If true, other required fields the contact is missing are filled with their default values.
activecampaign_update_contact_list_statusSubscribe a contact to a list or unsubscribe it, by setting its status on that list.WriteUpdate Contact List Status
Subscribe a contact to a list or unsubscribe it, by setting its status on that list. Returns the contactList membership record. Use this to manage list membership. Use activecampaign_get_contact_lists to read a contact's current memberships.
Inputs
contact_idstringrequired- ID of the contact.
list_idstringrequired- ID of the list, from list_lists.
statusstringrequired- 1 subscribes the contact to the list, 2 unsubscribes it. Changing an unsubscribed contact back to active resubscribes it.one of
12 source_idinteger- Set to 4 when re-subscribing a contact that was previously unsubscribed.
activecampaign_update_dealUpdate a deal's title, value, stage, pipeline, owner, status or custom fields.WriteUpdate Deal
Update a deal's title, value, stage, pipeline, owner, status or custom fields. Returns the updated deal. Set status 1 to mark the deal won or 2 to mark it lost; stage_id must belong to the deal's pipeline.
- Idempotent
Inputs
deal_idintegerrequired- ID of the deal.
account_idstring- ID of the deal's account.
contact_idstring- ID of the deal's primary contact.
currencystring- Three-letter ISO currency code in lowercase, for example usd.
descriptionstring- Deal description.
fieldsarray- Deal custom field values as an array of {customFieldId, fieldValue, fieldCurrency}; currency values are in cents. Example: [{"customFieldId": 1, "fieldValue": "Enterprise"}].
owner_idstring- User ID of the deal owner, from list_users.
percentinteger- Win probability percentage.
pipeline_idstring- ID of the deal's pipeline, from list_pipelines. The stage must belong to this pipeline.
stage_idstring- ID of the deal's stage, from list_deal_stages.
statusinteger- Deal status: 0 open, 1 won, 2 lost.one of
012 titlestring- Deal title.
valueinteger- Deal value in cents, for example 45678 for 456.78. Must be zero or more.
activecampaign_update_deal_custom_field_valueUpdate one stored deal custom field value by its ID.WriteUpdate Deal Custom Field Value
Update one stored deal custom field value by its ID. Returns the updated dealCustomFieldDatum. Get the value ID from activecampaign_list_deal_custom_field_values.
- Idempotent
Inputs
field_valuestringrequired- New value. Currency fields take cents.
value_idintegerrequired- ID of the deal custom field value.
field_currencystring- Three-letter currency code, for currency fields only.
activecampaign_update_deal_stageUpdate a deal stage's title, order, color or deal sorting.WriteUpdate Deal Stage
Update a deal stage's title, order, color or deal sorting. Returns the updated stage. Use activecampaign_move_deals_to_stage to move all of its deals elsewhere.
- Idempotent
Inputs
stage_idintegerrequired- ID of the deal stage.
colorstring- Stage color as a 6-character hex code without #.
deal_orderstring- How deals are sorted in the stage: a field and direction separated by a space, for example next-action DESC or title ASC.
orderinteger- Position of the stage within the pipeline.
pipeline_idstring- ID of the pipeline the stage belongs to.
reorderinteger- 1 reassigns order values to every stage in the pipeline after this change.one of
01 titlestring- Stage title.
widthinteger- Stage column width in pixels.
activecampaign_update_deal_taskUpdate a CRM task, including marking it complete.WriteUpdate Task
Update a CRM task, including marking it complete. Returns the updated task. Set status 1 to complete the task; accounts that require outcomes also need outcome_id.
- Idempotent
Inputs
task_idintegerrequired- ID of the task.
assigneeinteger- User ID the task is assigned to.
duedatestring- Due date and time in ISO 8601, for example 2026-11-02T12:00:00-05:00.
notestring- Task description.
outcome_idinteger- Task outcome ID, required by some accounts when completing a task.
outcome_infostring- Extra information about the outcome.
owner_typestring- What relid refers to: deal or contact.one of
dealcontact relidinteger- ID of the deal or contact the task belongs to (see owner_type).
statusinteger- Task status: 0 incomplete, 1 complete.one of
01 task_type_idinteger- Task type ID, from list_deal_task_types.
titlestring- Task title.
activecampaign_update_listUpdate a contact list's name, sender details or notification settings.WriteUpdate List
Update a contact list's name, sender details or notification settings. The channel cannot be changed. Returns the updated list. name is required on every update, even when it is not changing.
- Idempotent
Inputs
list_idstringrequired- ID of the list.
namestringrequired- Name of the list. Required on every update, even if unchanged; no HTML.
carboncopystring- Comma-separated email addresses that receive a copy of every mailing to this list.
descriptionstring- Description of the list.
send_last_broadcastboolean- Whether to send the last campaign sent to this list to each new subscriber.
sender_reminderstring- Reminder shown to contacts explaining why they are on this list.
sender_urlstring- The website URL this list is for. Email lists must keep a valid URL.
stringidstring- URL-safe list name.
subscription_notifystring- Comma-separated email addresses notified when someone subscribes.
unsubscription_notifystring- Comma-separated email addresses notified when someone unsubscribes.
userinteger- User ID of the list owner, from list_users.
activecampaign_update_noteReplace the text of an existing note.WriteUpdate Note
Replace the text of an existing note. Returns the updated note. reltype and relid must still name the record the note belongs to.
- Idempotent
Inputs
notestringrequired- Text of the note.
note_idstringrequired- ID of the note.
relidintegerrequired- ID of the record the note is attached to.
reltypestringrequired- Type of record the note is attached to: Subscriber (contact), Deal, DealTask, Activity or CustomerAccount (account).one of
SubscriberDealDealTaskActivityCustomerAccount
activecampaign_update_pipelineUpdate a deal pipeline's title, currency, permissions or auto-assign settings.WriteUpdate Pipeline
Update a deal pipeline's title, currency, permissions or auto-assign settings. Returns the updated pipeline. Use activecampaign_update_deal_stage to change its stages.
- Idempotent
Inputs
pipeline_idintegerrequired- ID of the pipeline.
allgroupsinteger- 1 lets every user group manage the pipeline; 0 limits it to the groups in groups.one of
01 allusersinteger- 1 auto-assigns new deals across all users (unless auto-assign is off); 0 uses the users list.one of
01 autoassigninteger- Deal auto-assign mode: 0 disabled, 1 round robin, 2 deal value.one of
012 currencystring- Default currency for new deals in this pipeline, lowercase ISO code.
groupsarray- User group IDs allowed to manage the pipeline.
titlestring- Pipeline title.
usersarray- User IDs to auto-assign new deals to.
activecampaign_update_tagRename a tag or change its type or description.WriteUpdate Tag
Rename a tag or change its type or description. Renaming also updates automations and segments that use it. Returns the updated tag. Fails with 422 if another tag already uses the new name.
- Idempotent
Inputs
tag_idintegerrequired- ID of the tag.
descriptionstring- Description of the tag.
namestring- Tag name: 1 to 250 characters, no commas, line breaks or HTML.
tag_typestring- Tag type: contact or template. Send it on create; tags created without a type do not appear in list_tags.one of
contacttemplate
activecampaign_delete_accountDelete an account (company) by ID.DestructiveDelete Account
Delete an account (company) by ID. Returns an empty object on success. Contacts linked to the account are not deleted.
- Idempotent
Inputs
account_idintegerrequired- ID of the account.
activecampaign_delete_account_contactRemove a contact-to-account association by its ID.DestructiveUnlink Contact from Account
Remove a contact-to-account association by its ID. Returns an empty object on success. Get the association ID from activecampaign_list_account_contacts. The contact and account are not deleted.
- Idempotent
Inputs
association_idintegerrequired- ID of the accountContact association.
activecampaign_delete_contactPermanently delete a contact by ID.DestructiveDelete Contact
Permanently delete a contact by ID. Returns an empty object on success and 404 if the contact does not exist. Use this to remove a contact entirely. Use activecampaign_update_contact_list_status to unsubscribe a contact from a list instead.
- Idempotent
Inputs
contact_idintegerrequired- ID of the contact.
activecampaign_delete_contact_custom_fieldPermanently delete a contact custom field definition and every contact's value for it.DestructiveDelete Contact Custom Field
Permanently delete a contact custom field definition and every contact's value for it. Cannot be undone. Returns an empty object on success. Use activecampaign_delete_contact_field_value to clear the field for one contact only.
- Idempotent
Inputs
field_idintegerrequired- ID of the custom field definition (not a field option ID).
activecampaign_delete_contact_field_valueClear one contact's value for a custom field by deleting the fieldValue record.DestructiveDelete Contact Field Value
Clear one contact's value for a custom field by deleting the fieldValue record. Returns an empty object on success. The field definition and other contacts' values are not affected.
- Idempotent
Inputs
field_value_idintegerrequired- ID of the fieldValue record (not a contact or field ID).
activecampaign_delete_dealPermanently delete a deal by ID.DestructiveDelete Deal
Permanently delete a deal by ID. Returns an empty object on success. Use activecampaign_update_deal with status 2 to mark a deal lost instead of deleting it.
- Idempotent
Inputs
deal_idintegerrequired- ID of the deal.
activecampaign_delete_deal_secondary_contactRemove a secondary contact from a deal by the contactDeal row ID.DestructiveRemove Deal Secondary Contact
Remove a secondary contact from a deal by the contactDeal row ID. Returns an empty object on success. Get the row ID from activecampaign_list_deal_secondary_contacts.
- Idempotent
Inputs
contact_deal_idintegerrequired- ID of the contactDeal row.
activecampaign_delete_deal_stageDelete a deal stage.DestructiveDelete Deal Stage
Delete a deal stage. Returns an empty object on success. Use activecampaign_move_deals_to_stage first to keep the stage's deals.
- Idempotent
Inputs
stage_idintegerrequired- ID of the deal stage.
activecampaign_delete_deal_taskDelete a CRM task by ID.DestructiveDelete Task
Delete a CRM task by ID. Returns an empty object on success. Use activecampaign_update_deal_task with status 1 to complete a task instead.
- Idempotent
Inputs
task_idintegerrequired- ID of the task.
activecampaign_delete_listDelete a contact list.DestructiveDelete List
Delete a contact list. Returns an empty object on success. Contacts on the list are not deleted.
- Idempotent
Inputs
list_idintegerrequired- ID of the list.
activecampaign_delete_noteDelete a note by ID.DestructiveDelete Note
Delete a note by ID. Returns an empty object on success. Use activecampaign_list_notes or activecampaign_get_contact_notes to find the ID.
- Idempotent
Inputs
note_idstringrequired- ID of the note.
activecampaign_delete_pipelineDelete a deal pipeline.DestructiveDelete Pipeline
Delete a deal pipeline. Returns an empty object on success. Move or close its deals first if you need to keep them.
- Idempotent
Inputs
pipeline_idintegerrequired- ID of the pipeline.
activecampaign_delete_tagPermanently delete a tag definition.DestructiveDelete Tag
Permanently delete a tag definition. Returns an empty object on success. Use activecampaign_remove_tag_from_contact to take a tag off one contact without deleting the tag.
- Idempotent
Inputs
tag_idintegerrequired- ID of the tag.
activecampaign_remove_contact_from_automationRemove a contact from an automation by the contactAutomation row ID.DestructiveRemove Contact from Automation
Remove a contact from an automation by the contactAutomation row ID. Returns an empty object on success. Get the row ID from activecampaign_get_contact_automations or activecampaign_add_contact_to_automation, not the automation ID.
- Idempotent
Inputs
contact_automation_idintegerrequired- ID of the contactAutomation row (not the automation ID).
activecampaign_remove_tag_from_contactRemove a tag from a contact by contact ID and tag ID.DestructiveRemove Tag from Contact
Remove a tag from a contact by contact ID and tag ID. The tag definition itself is not deleted. Returns an empty object on success, and 404 if the contact or tag does not exist or the tag is not on the contact. Use activecampaign_list_tags to find the tag ID. Use activecampaign_delete_tag to delete the tag from the account entirely.
- Idempotent
Inputs
contact_idintegerrequired- ID of the contact.
tag_idintegerrequired- ID of the tag.
No tools match.