- Home
- Resources
- Integrations
- ActiveCampaign
ActiveCampaign n8n integrationAutomate ActiveCampaign with n8n.
Every contact, tag and deal in ActiveCampaign can be driven from a workflow. The ActiveCampaign n8n integration exposes 48 operations across 12 resources, and the trigger listens on 4 event sources over a webhook. Written for marketing and revenue teams who already know the tool.
Verified Trustpilot reviews · AI, automation & growth agency
What does the ActiveCampaign n8n integration actually give you?
Two nodes ship with n8n for ActiveCampaign. The app node creates and edits data: accounts, contacts, lists, tags, deals, connections and e-commerce records, 48 operations in all. The trigger node handles ActiveCampaign events through a webhook, an URL that ActiveCampaign calls as soon as something happens, so a workflow starts within seconds instead of checking on a schedule.
The first thing most teams build is a clean intake. A contact arrives from a form, contact.create writes the email into ActiveCampaign, contactTag.add stamps the source on it, and contactList.add subscribes the person to the right list. Three nodes, no copy and paste, and the same credential reused every time.
The second pattern is enrichment from outside. Sales notes live in a spreadsheet, support answers live in an inbox, and none of it reaches the CRM on its own. Pull the rows with the Google Sheets node, match the person with contact.getAll and its Email filter, then push the change with contact.update. Company records follow the same route through account.create and accountContact.create, which is what turns a pile of emails into named organizations.
The third pattern is migration and hygiene between tools. Teams running Mailchimp for newsletters or SendGrid for transactional mail often need one side to mirror the other, and the list and tag operations do that job without an export file.
Where the node stops, HTTP Request takes over. It calls any endpoint of the ActiveCampaign API and reuses the same credential through predefined authentication, so an operation missing from the node is not a dead end. Worth knowing before you plan: the trigger offers 4 event sources and no wildcard option, identifiers are numeric IDs rather than names, and a required field left empty stops the node instead of guessing.
If you are weighing the platform itself rather than this one node, the n8n review covers hosting and cost, and the n8n training goes through building these workflows step by step.
How do you connect ActiveCampaign to n8n?
- 01
Open the developer settings in ActiveCampaign
In ActiveCampaign, select Settings, the gear cog icon in the left menu, then Developer. That page holds the two values n8n needs, and nothing else has to be enabled. The same credential works for both the app node and the trigger node, so this trip happens once for every workflow you will ever build on this account.
- 02
Copy the API URL and the API Key
ActiveCampaign supports one authentication method here: API key. Copy the API URL shown on the Developer page, then copy the API Key below it. The URL is account specific, so a key from one account will never work against another account's URL. If the key has been shared too widely, ActiveCampaign documents how to reset it.
- 03
Create the credential in n8n
In n8n, open the Credentials menu and create an ActiveCampaign credential, which is the stored login n8n reuses across workflows. Paste the API URL in one field and the API key in the other. Back in the node, pick that credential from the dropdown list. It is now available on n8n Cloud or on a self-hosted instance, with no difference in behavior.
What starts a workflow from ActiveCampaign ?
ActiveCampaign Trigger is the node that starts a workflow when something happens in ActiveCampaign. It listens to 4 events, listed below by family. Pick one or several, activate the workflow: n8n registers the webhook on your ActiveCampaign account.
What you see in n8n
Every event, by family
One row per object, one chip per action. The event to tick in the node is object.action; hover a chip to read exactly when it fires.
admin.*1admin.admin
api.*1api.api
public.*1public.public
system.*1system.system
Configuration notes
01Configure the ActiveCampaign Trigger
The ActiveCampaign Trigger node starts a workflow when ActiveCampaign reports an event. It works by webhook: n8n registers its URL with ActiveCampaign when you activate the workflow, and each event lands in n8n within seconds, with no polling and no interval to tune.
Key parameters
- Event Names or IDs: the events the trigger listens to. Pick them from the list, or pass IDs with an expression, the small n8n formula that reads a value instead of typing it.
02Public events
The public source runs the hooks when a contact triggers the action. In practice this covers what people do themselves: filling a form, clicking through, unsubscribing, anything that starts on the contact's side rather than inside your team's tools.
Key parameters
- Event Names or IDs: select
publicto keep only contact-initiated activity out of the 4 available sources.
03Api events
The api source runs the hooks when an API call triggers the action. Anything your own scripts, your website backend or another automation does through the ActiveCampaign API shows up under this source rather than under public activity.
Key parameters
- Event Names or IDs: choose
apiwhen the change you care about comes from code rather than from a person.
04Admin and System events
Two sources cover changes that no contact asked for. The admin source runs the hooks when an admin user triggers the action, so it reflects what your own team does inside the ActiveCampaign interface. The system source runs the hooks when automated systems trigger the action, which is the automations and internal processes of the platform itself.
Key parameters
- Event Names or IDs: select
admin,system, or both, depending on whether you are auditing people or machines.
What can the ActiveCampaign node do?
The ActiveCampaign node exposes 48 operations across 12 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.
| Resource | Create | Get | Get Many | Update | Delete | Add | Remove | Create Note | Get by Order ID | Get by Product ID | Update Deal Note |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Account | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
| Account Contact | ✓ | ✓ | ✓ | ||||||||
| Connection | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
| Contact | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
| Contact List | ✓ | ✓ | |||||||||
| Contact Tag | ✓ | ✓ | |||||||||
| Deal | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
| E-Commerce Customer | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
| E-Commerce Order | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
| E-Commerce Order Product | ✓ | ✓ | ✓ | ||||||||
| List | ✓ | ||||||||||
| Tag | ✓ | ✓ | ✓ | ✓ | ✓ |
Operations index
Account
5 operationsCreate an account
account.createWhat you see in n8n
Notes & use cases
Adds a company record in ActiveCampaign and returns it, so a contact can later be attached to a named organization rather than floating alone.
Key parameters
- Name: the account's name, required. Usually the company name coming from the previous node, for example
{{ $json.company }}. - Account URL: the account's website, stored in Additional Fields.
- Fields: adds custom fields, so values you defined yourself get set at creation time.
Delete an account
account.deleteWhat you see in n8n
Notes & use cases
Removes an account from ActiveCampaign for good. The record disappears, so run it on a filtered branch rather than on an unchecked list of items.
Key parameters
- Account ID: the numeric ID of the account to delete, required. It is the ID, not the company name, so take it from an earlier lookup with an expression such as
{{ $json.id }}.
Get an account
account.getWhat you see in n8n
Notes & use cases
Pulls one account and returns its stored data, which is how a workflow checks what ActiveCampaign currently holds before writing anything new.
Key parameters
- Account ID: the numeric ID of the account to get, required. Feed it from a previous node with
{{ $json.account }}rather than typing it by hand.
Get many accounts
account.getAllWhat you see in n8n
Notes & use cases
Lists the accounts stored in ActiveCampaign, one item per company, which is the starting point for any report or bulk cleanup.
Key parameters
- Return All: on, n8n walks every page of accounts; off, Limit caps how many come back.
- Search: searches by name, in the Filters collection, to narrow the export to one part of the book.
- Simplify: returns a lighter response instead of the raw data.
Update an account
account.updateWhat you see in n8n
Notes & use cases
Edits an account already in ActiveCampaign. Only the fields you fill are touched, so the rest of the record survives the run untouched.
Key parameters
- Account ID: the numeric ID of the account to update, required.
- Name and Account URL: the company name and website, in Update Fields.
- Fields: sets custom fields that were not predefined.
Account Contact
3 operationsCreate an account contact
accountContact.createWhat you see in n8n
Notes & use cases
Links a contact to an account, creating the association that tells ActiveCampaign this person works at that company.
Key parameters
- Account ID: the numeric ID of the company, required.
- Contact ID: the numeric ID of the person, required. Both usually come from the two create steps that ran just before.
- Job Title: the job title of the contact at the account, in Additional Fields.
Delete an account contact
accountContact.deleteWhat you see in n8n
Notes & use cases
Breaks the tie between a person and a company without deleting either one. The contact stays in ActiveCampaign, the association does not.
Key parameters
- Account Contact ID: the numeric ID of the account contact to delete, required. Note that it identifies the link itself, not the contact and not the account.
Update an account contact
accountContact.updateWhat you see in n8n
Notes & use cases
Changes what an existing association says, so the link between a person and a company stays accurate as their role moves.
Key parameters
- Account Contact ID: the numeric ID of the association, required.
- Job Title: the job title of the contact at the account, in Update Fields. It is the field most teams end up maintaining here.
Connection
5 operationsCreate a connection
connection.createWhat you see in n8n
Notes & use cases
Registers an external service in ActiveCampaign, the object that later lets orders and e-commerce customers be attributed to the store they came from.
Key parameters
- Service and External Account ID: the name of the service and the ID of the account in it, both required.
- Account Name: the name used in the external service, often a company name, required.
- Logo URL and Link URL: the logo image and the page where the integration is managed on the third party site, both required.
Delete a connection
connection.deleteWhat you see in n8n
Notes & use cases
Drops a connection from ActiveCampaign. The store stops being a recognized source for the records that referenced it, so check what depends on it first.
Key parameters
- Connection ID: the numeric ID of the connection to delete, required. Fetch it from a listing step rather than trusting a value noted weeks earlier.
Get a connection
connection.getWhat you see in n8n
Notes & use cases
Reads back a single connection and returns its data, which is the quickest way to confirm a store is still registered the way you set it up.
Key parameters
- Connection ID: the numeric ID of the connection to get, required.
Get many connections
connection.getAllWhat you see in n8n
Notes & use cases
Returns every external service registered on the account, one item per connection, which is how you see all the stores feeding ActiveCampaign in one pass.
Key parameters
- Return All: on, n8n pages through all the connections; off, Limit sets how many are returned.
- Simplify: returns a simplified response instead of the raw data, easier to map in the next node.
Update a connection
connection.updateWhat you see in n8n
Notes & use cases
Rewrites the details of an existing connection, including the two status values that say whether the store is healthy and whether a sync is running.
Key parameters
- Connection ID: the numeric ID of the connection to update, required.
- Status: 0 for error, 1 for connected.
- Syncronisation Status: 0 when the sync is stopped, 1 when it is running.
- Service, External Account ID, Account Name, Logo URL, Link URL: the descriptive fields, in Update Fields.
Contact
5 operationsCreate a contact
contact.createWhat you see in n8n
Notes & use cases
Writes a new person into ActiveCampaign and returns the created contact, with the email as the one value the operation refuses to run without.
Key parameters
- Email: the email of the contact to create, required, typically
{{ $json.email }}from the form or trigger. - Update if Exists: on, an existing contact is updated instead of raising an error.
- First Name, Last Name, Phone, Custom Fields: the rest of the profile, in Additional Fields.
Delete a contact
contact.deleteWhat you see in n8n
Notes & use cases
Erases a contact from ActiveCampaign. The person leaves the database entirely, which is a different outcome from unsubscribing them.
Key parameters
- Contact ID: the numeric ID of the contact to delete, required. An email address will not work here, so look the ID up first.
Get a contact
contact.getWhat you see in n8n
Notes & use cases
Fetches one contact and returns the stored profile, including the custom field values other operations will need further down the workflow.
Key parameters
- Contact ID: the numeric ID of the contact to get, required.
Get many contacts
contact.getAllWhat you see in n8n
Notes & use cases
Exports contacts in bulk, with the widest filter set of the node: 17 optional fields narrow the list before a single item leaves ActiveCampaign.
Key parameters
- Return All: on, n8n follows every page of contacts; off, Limit caps the batch.
- List ID, Tag ID, Segment ID, Form ID: filter on where the contact came from or sits.
- Status: 1 active, 0 unconfirmed, 2 unsubscribed, 3 bounced.
- Created After, Updated After: date windows for incremental runs.
Update a contact
contact.updateWhat you see in n8n
Notes & use cases
Changes the stored details of a contact that already exists. Blank fields keep their current value. That makes a partial update safe to run on a whole batch, even when only one column changed upstream.
Key parameters
- Contact ID: the numeric ID of the contact to update, required.
- Email, First Name, Last Name, Phone: the profile fields, in Update Fields.
- Custom Fields: sets values you defined yourself, such as a plan or a score.
Contact List
2 operationsAdd a contact to a list
contactList.addWhat you see in n8n
Notes & use cases
Subscribes a contact to one list, which is what actually makes the person eligible for the campaigns sent to it.
Key parameters
- List ID: the numeric ID of the list, required.
- Contact ID: the numeric ID of the person, required. Both are IDs, so a list name typed as text will fail.
Remove a contact from a list
contactList.removeWhat you see in n8n
Notes & use cases
Takes a contact off a list without deleting the person. They stay in ActiveCampaign and keep every other subscription they have.
Key parameters
- List ID: the numeric ID of the list to leave, required.
- Contact ID: the numeric ID of the contact, required.
Contact Tag
2 operationsAdd a contact tag
contactTag.addWhat you see in n8n
Notes & use cases
Attaches a tag to a contact, the lightest way to mark behavior in ActiveCampaign and the usual hook for segments and automations.
Key parameters
- Tag Name or ID: choose the tag from the list n8n loads from your account, or pass an ID with an expression.
- Contact ID: the numeric ID of the contact, required.
Remove a contact tag
contactTag.removeWhat you see in n8n
Notes & use cases
Detaches a tag that no longer describes the person. Without it, old tags pile up and segments slowly stop meaning anything.
Key parameters
- Contact Tag ID: the numeric ID of the contact tag to delete, required. It identifies the tag on that specific contact, not the tag itself, which stays available for everyone else.
Deal
7 operationsCreate a deal
deal.createWhat you see in n8n
Notes & use cases
Pushes a new opportunity into an ActiveCampaign pipeline and returns the deal ID that later steps reuse.
Key parameters
- Title: the label sales people read in the pipeline, often built from the company name carried by the previous node.
- Deal's Contact ID: the numeric ID of the contact, not an email address, typically
{{ $json.id }}after a contact lookup. - Deal Value: the amount in cents, so a 2 000 euro deal is written
200000. - Currency: the 3-character ISO code picked from the list,
eurorusd.
Create a deal note
deal.createNoteWhat you see in n8n
Notes & use cases
Attaches a written note to a deal that already exists, so the context of a call lives in the CRM instead of a private inbox.
Key parameters
- Deal ID: the numeric identifier of the deal the note is filed under.
- Deal Note: the text itself. An expression builds it from earlier data, for instance
{{ $json.summary }}coming from a transcript step.
Delete a deal
deal.deleteWhat you see in n8n
Notes & use cases
Removes a deal from the CRM for good. Nothing comes back apart from the confirmation, so anything worth keeping should be read and stored before this node runs.
Key parameters
- Deal ID: the numeric ID of the deal to delete. A deal title is not accepted, and fetching the ID first is the only way in when all you have is a name.
Get a deal
deal.getWhat you see in n8n
Notes & use cases
Reads one deal and hands back its stored fields. Useful when an earlier step only carries an identifier and the rest of the workflow needs the amount, the stage or the title.
Key parameters
- Deal ID: the numeric ID of the deal to read, most often
{{ $json.id }}taken from the item that came in.
Get many deals
deal.getAllWhat you see in n8n
Notes & use cases
Lists deals from the account, one n8n item per deal, ready to be filtered, counted or written to a spreadsheet.
Key parameters
- Return All: switched on, n8n keeps requesting the next page until every deal has been collected. Switched off, it stops at Limit.
- Limit: the maximum number of deals a single run brings back, which is enough when only the freshest ones matter.
- Simplify: returns a trimmed version of each deal rather than the raw API response, so field mapping stays short.
Update a deal
deal.updateWhat you see in n8n
Notes & use cases
Edits a deal already in the pipeline. Only what sits under Update Fields is sent, so anything left blank keeps its current value.
Key parameters
- Deal ID: which deal gets edited.
- Title, Deal Value, Currency: the same meaning as at creation, value still in cents.
- Deal Stage ID: moves the deal to another stage, which is how a pipeline advances without anyone dragging a card.
- Deal Status and Deal Percentage: numeric fields that record where the opportunity stands.
Update a deal note
deal.updateNoteWhat you see in n8n
Notes & use cases
Rewrites the content of a note already filed on a deal. Two identifiers are needed, because a note only exists inside its deal.
Key parameters
- Deal ID: the deal that holds the note.
- Deal Note ID: the numeric ID of the note itself, usually kept from the step that created it.
- Deal Note: the new text. Leave it out and nothing changes.
E-Commerce Customer
5 operationsCreate an e-commerce customer
ecommerceCustomer.createWhat you see in n8n
Notes & use cases
Registers a shopper as an e-commerce customer inside ActiveCampaign and ties that record to a connection, which is what lets orders be attached to a buyer later on.
Key parameters
- Service ID: the ID of the connection object for the service the customer originates from.
- Customer ID: the identifier the shopper carries in that external service, not the one ActiveCampaign will assign.
- Customer Email: the address, in the
name@email.comform. - Accepts Marketing: records whether the shopper opted in to marketing communications.
Delete an e-commerce customer
ecommerceCustomer.deleteWhat you see in n8n
Notes & use cases
Wipes an e-commerce customer record. The node returns no copy of what it removed, so a read step belongs before it whenever a trace has to be kept somewhere else.
Key parameters
- Customer ID: the numeric ActiveCampaign ID of the e-commerce customer to delete, which is not the ID the same buyer carries in the store.
Get an e-commerce customer
ecommerceCustomer.getWhat you see in n8n
Notes & use cases
Fetches a single e-commerce customer record so a workflow can check what ActiveCampaign already holds before deciding to write anything.
Key parameters
- Customer ID: the numeric ID of the e-commerce customer to read.
Get many e-commerce customers
ecommerceCustomer.getAllWhat you see in n8n
Notes & use cases
Walks through the e-commerce customers of the account and outputs them one by one, which is the starting point of any audit of the shopping side.
Key parameters
- Return All: on, every page of customers is collected before the workflow moves on. Off, the run stops at Limit.
- Limit: caps how many customer records a run returns, handy while a workflow is still being tested.
- Simplify: keeps a condensed version of each record instead of the full API payload.
Update an e-commerce customer
ecommerceCustomer.updateWhat you see in n8n
Notes & use cases
Corrects an existing e-commerce customer record. Fields left out of Update Fields stay as they are, which makes this safe to run on every order.
Key parameters
- Customer ID: the record being edited.
- Customer Email: the new address, still in the
name@email.comform. - Service ID and Customer ID under Update Fields: the connection and the external identifier, to repoint a record that was attached to the wrong store.
- Accepts Marketing: flips the opt-in when a shopper changes preferences.
E-Commerce Order
5 operationsCreate an e-commerce order
ecommerceOrder.createWhat you see in n8n
Notes & use cases
Records a full order in ActiveCampaign, buyer and basket included, so automations react to real purchases.
Key parameters
- Order Source:
0stores the order quietly,1makes it trigger automations. - Customer Email: the address of the buyer.
- Total Price: the total in cents, tax and shipping included, never negative, so
$456.78is sent as45678. - Order Currency, Connection ID, Customer ID, Creation Date: the currency code, the connection the order came from, the buyer and the date.
- External ID or External Checkout ID: the order or cart reference. One of the two is needed, and a cart reference also expects Abandoning Date.
Delete an e-commerce order
ecommerceOrder.deleteWhat you see in n8n
Notes & use cases
Drops an order from the e-commerce data of the account. Handy after a test run, less so on live data, since the basket lines attached to that order go with it.
Key parameters
- Order ID: the ID of the e-commerce order, and the only field the operation offers.
Get an e-commerce order
ecommerceOrder.getWhat you see in n8n
Notes & use cases
Returns a single order with the data ActiveCampaign stored for it, which is how a workflow confirms that a push really landed.
Key parameters
- Order ID: the ID of the e-commerce order to read.
Get many e-commerce orders
ecommerceOrder.getAllWhat you see in n8n
Notes & use cases
Pulls orders in bulk, one item per order, so revenue data leaves ActiveCampaign towards a sheet, a database or a report.
Key parameters
- Return All: enabled, the node chains the pages of the orders endpoint until it has them all. Disabled, it stops at Limit.
- Limit: how many orders a run brings back at most.
- Simplify: strips the raw payload down to the useful order fields, which shortens the mapping that follows.
Update an e-commerce order
ecommerceOrder.updateWhat you see in n8n
Notes & use cases
Amends an order already stored, without resending the whole basket. Whatever stays out of Update Fields keeps its recorded value.
Key parameters
- Order ID: the order being edited.
- Total Price and Order Currency: the corrected total, still in cents, with its ISO code.
- Shipping Amount, Tax Amount, Discount Amount: the three amounts that explain the total, each in cents.
- Shipping Method and Order Number: the carrier choice and the store reference, which can differ from the external ID.
- Products: the ordered products, when a line has to be corrected too.
E-Commerce Order Product
3 operationsGet many ecommerce orders
ecommerceOrderProducts.getAllWhat you see in n8n
Notes & use cases
Collects the product lines recorded across orders, not the orders themselves. Each item is a bought line, which is the level at which best sellers can be counted.
Key parameters
- Return All: on, every page of product lines comes back, and the volume grows faster than with orders.
- Limit: the ceiling on the number of product lines a run returns.
- Simplify: hands back a lighter version of each line instead of the raw response.
Get an e-commerce order product by product ID
ecommerceOrderProducts.getByProductIdWhat you see in n8n
Notes & use cases
Narrows the product lines down to one product, so a workflow follows a single reference instead of sorting through everything that has been sold.
Key parameters
- Product ID: the ID of the product you want returned.
Get an e-commerce order product by order ID
ecommerceOrderProducts.getByOrderIdWhat you see in n8n
Notes & use cases
Answers a simple question: what was in this order? The operation returns the lines attached to one order rather than a single product across orders.
Key parameters
- Order ID: the ID of the order whose products you want returned.
List
1 operationGet many lists
list.getAllWhat you see in n8n
Notes & use cases
Brings back the lists of the account with their IDs, which are the values other operations expect when a contact has to be subscribed somewhere.
Key parameters
- Return All: on, the node collects every list; off, it stops at Limit, which is usually plenty since accounts rarely hold many lists.
- Limit: the maximum number of lists returned.
- Simplify: returns the condensed form of each list rather than the full API response.
Tag
5 operationsCreate a tag
tag.createWhat you see in n8n
Notes & use cases
Creating a tag gives the ActiveCampaign account a new label and returns it with the ID that every later tagging step expects.
Key parameters
- Type:
contactfor a tag you apply to people,templatefor a tag you apply to a template. The node asks for it before the name. - Name: the label as it will read inside ActiveCampaign, often built from an upstream item with
{{ $json.name }}. - Description: optional, sitting under Additional Fields. Fill it when several people share the account and need to know what the label stands for.
Delete a tag
tag.deleteWhat you see in n8n
Notes & use cases
Deletion is permanent here, and it takes the label off every contact that carried it. Run it on purpose, not as a cleanup reflex.
Key parameters
- Tag ID: a number, not the tag text. ActiveCampaign will not resolve a label you type by hand, so the value normally comes from a Get many tags step as
{{ $json.id }}.
Get a tag
tag.getWhat you see in n8n
Notes & use cases
One tag, read by its identifier, returned as ActiveCampaign stores it. This is the read step you put in front of a branch, when the workflow has an ID and needs the record behind it.
Key parameters
- Tag ID: the numeric identifier of the tag to read, usually carried over from an earlier node or from the trigger payload.
Get many tags
tag.getAllWhat you see in n8n
Notes & use cases
Listing brings the account's tags into the workflow, one item per tag, which is how you turn a naming convention into something you can actually check.
Key parameters
- Return All: on, n8n walks the API pages until every tag is in. Off, it stops at Limit.
- Limit: the maximum number of tags returned, useful while you are still testing the workflow.
- Simplify: returns a trimmed version of each tag instead of the raw API payload, which keeps the mapping panel readable.
Update a tag
tag.updateWhat you see in n8n
Notes & use cases
A badly named label gets fixed here, without touching the contacts attached to it. Only the fields you fill are sent, everything else stays as it was.
Key parameters
- Tag ID: the tag to modify, by number.
- Tag: inside Update Fields, the text the label carries after the update. Its n8n hint still reads "Name of the contact", a leftover from the contact resource, so trust the field name over the hint.
- Description: inside Update Fields, the explanation shown next to the tag.
Need help automating ActiveCampaign with n8n?
A person reads every message.