- Home
- Resources
- Integrations
- Autopilot
Autopilot n8n integrationAutomate Autopilot with n8n.
Marketing contacts should never be retyped by hand. The Autopilot n8n integration exposes 11 operations across 4 resources, from a single contact lookup to list membership. The Autopilot Trigger listens to 7 contact events over a webhook, so a workflow starts the second a record moves.
Verified Trustpilot reviews · AI, automation & growth agency
What does the Autopilot n8n integration actually do?
Two nodes come with n8n. The Autopilot node calls the Autopilot API to create, read, delete and file contacts, and to manage the lists they sit on: 11 operations spread over Contact, Contact Journey, Contact List and List. The Autopilot Trigger works the other way round. It hands n8n a webhook, a URL that Autopilot calls on its own, and each contact event lands in the workflow within seconds. Both nodes share one credential, an API key you generate once.
Start with the signup path. A form drops a row in Google Sheets, n8n picks it up and runs contact.upsert. The email address decides everything: Autopilot updates the matching contact or creates it, and the List Name or ID field files the person on the right list in the same call. No duplicate check to write, no second node.
The second path runs on events. Someone opts out, contactUnsubscribed fires, and the workflow posts the detail to a Slack channel and flags the row in your sheet before the next campaign goes out. Same idea for contactAddedToList, which is useful when the marketing team builds lists in Autopilot and the rest of the company needs to know.
The third path is a handover. A deal moves in your CRM, n8n reads the contact with contact.get, then calls contactJourney.add to push it into the journey selected in Trigger Name or ID. If the same person also lives in another marketing tool such as Mautic, the workflow keeps both sides aligned instead of asking someone to copy a CSV.
Two things are worth knowing before you build. Anything outside those 11 catalogue operations goes through the HTTP Request node, which calls any Autopilot API endpoint and reuses the very same credential through predefined authentication. And the branding change matters: Autopilot has become Ortto, and the Autopilot credentials and nodes are only compatible with Autopilot, not the new Ortto API.
If you want a wider read on the platform itself before committing a marketing stack to it, the n8n review covers hosting and cost, and the n8n training walks through building workflows like these from scratch.
How do you connect Autopilot to n8n?
- 01
Generate the API key in Autopilot
You need an Autopilot account first. Once you are in, open Settings > Autopilot API and generate an API Key. That key is the only authentication method the Autopilot credential supports, so there is no OAuth screen and no scope list to pick through. Copy it somewhere safe before you leave the page, because you will paste it into n8n in the next step.
- 02
Create the credential in n8n
In n8n, go to the Credentials menu and add an Autopilot credential, then paste the API Key into its single field. A credential is stored once and reused everywhere: the same entry authenticates the Autopilot node and the Autopilot Trigger, on n8n Cloud or on a self-hosted instance, without you touching the key again.
- 03
Pick the credential and run one operation
Drop an Autopilot node on the canvas and select the credential from its dropdown list. Set the resource to List and the operation to Get Many, then execute the node. If your lists come back, the key is valid and the account is reachable. It is a cheap test, and it saves you from debugging an authentication problem inside a five-node workflow later on.
What starts an Autopilot workflow in n8n?
Autopilot Trigger is the node that starts a workflow when something happens in Autopilot. It listens to 7 events, listed below by family. Pick one or several, activate the workflow: n8n registers the webhook on your Autopilot 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.
contact.*7Configuration notes
01Set Up the Autopilot Trigger
The Autopilot Trigger is the node that starts a workflow when something happens on a contact. It runs on a webhook, meaning n8n exposes a URL that Autopilot calls, so each event arrives within seconds and nothing is polled on a schedule.
Key parameters
- Event: the single setting on the node. Pick one of the 7 contact events, and only that one wakes the workflow.
02Contact Added and Contact Updated
These two cover the life of the record itself. contactAdded fires when a contact appears in Autopilot, whatever created it, and contactUpdated fires when an existing one changes.
One detail belongs to the node, not the trigger: contact.upsert has a Notify field, and Autopilot notifies registered REST hook endpoints for contact_added and contact_updated events by default. Disable it when a workflow writes into Autopilot and you do not want that write to wake another workflow.
Key parameters
- Event: set to Contact Added or Contact Updated. The event value lands in the workflow as
contactAddedorcontactUpdated.
03Contact Added To List and Contact Removed From List
List membership gets its own pair of events. contactAddedToList fires when a contact joins a list, contactRemovedFromList when it leaves one.
Key parameters
- Event: Contact Added To List or Contact Removed From List, one trigger node each.
contactList.getAll when you need the current state of the list rather than the single contact that just moved.04Contact Entered Segment, Contact Left Segment and Contact Unsubscribed
The last three events are about behaviour rather than data entry. contactEnteredSegment and contactLeftSegment fire when a contact enters or leaves a segment, contactUnsubscribed when someone opts out.
Key parameters
- Event: Contact Entered Segment, Contact Left Segment or Contact Unsubscribed.
What can the Autopilot node do?
The Autopilot node exposes 11 operations across 4 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.
| Resource | Create | Get | Get Many | Delete | Add | Remove | Exist | Create or Update |
|---|---|---|---|---|---|---|---|---|
| Contact | ✓ | ✓ | ✓ | ✓ | ||||
| Contact Journey | ✓ | |||||||
| Contact List | ✓ | ✓ | ✓ | ✓ | ||||
| List | ✓ | ✓ |
Operations index
Contact
4 operationsCreate or Update a contact
contact.upsertWhat you see in n8n
Notes & use cases
One call handles both cases, which is what upsert means: if a contact already exists with that email address, Autopilot updates it, otherwise it creates it. A form workflow never needs to check first.
Key parameters
- Email: the contact's email address, usually
{{ $json.email }}coming from the previous node. The field is required, so an empty value stops the execution. - Additional Fields: a collection of 26 optional fields, including First Name, Company, List Name or ID to file the contact on creation, New Email to change the address of the contact identified by Email.
Delete a contact
contact.deleteWhat you see in n8n
Notes & use cases
Removes the contact from Autopilot for good. Worth wiring behind a manual approval step rather than straight after a trigger.
Key parameters
- Contact ID: can be the identifier or the email address. That flexibility matters, because a deletion request usually arrives as an address typed by a human, so
{{ $json.email }}works without a lookup first.
Get a contact
contact.getWhat you see in n8n
Notes & use cases
Reads a single contact and returns its record to the next node. This is the lookup you place before a decision: read first, then branch on what came back.
Key parameters
- Contact ID: can be the identifier or the email address, so a workflow holding only
{{ $json.email }}can still fetch the full record.
Get many contacts
contact.getAllWhat you see in n8n
Notes & use cases
Returns contacts in bulk rather than one by one. Use it for exports, audits and scheduled reconciliations.
Key parameters
- Return All: switch it on and n8n walks through every page of the Autopilot API until the whole contact base is in the workflow.
- Limit: active when Return All is off, it caps how many contacts come back. Handy while you are still designing the workflow and do not want to pull everything on each test run.
Contact Journey
1 operationAdd a contact journey
contactJourney.addWhat you see in n8n
Notes & use cases
Pushes a contact into a journey selected on the node, which is how an external event starts an Autopilot sequence.
Key parameters
- Trigger Name or ID: the list ID the journey starts from. Choose it from the dropdown, or pass an ID with an expression when the value is dynamic.
- Contact ID: can be the identifier or the email address of the person to enrol.
Contact List
4 operationsAdd a contact to a list
contactList.addWhat you see in n8n
Notes & use cases
Files an existing contact onto a list. Unlike the upsert route, nothing is created or modified on the contact itself: only the membership changes.
Key parameters
- List Name or ID: the list to operate on, picked from the dropdown or passed as an ID through an expression.
- Contact ID: can be the identifier or the email address.
Check if a contact list exists
contactList.existWhat you see in n8n
Notes & use cases
Asks Autopilot whether a given contact is on a given list, and returns the answer to the workflow. It is a read, so nothing changes on either side.
Key parameters
- List Name or ID: the list to check against.
- Contact ID: the contact to look for, by identifier or by email.
Get many contact lists
contactList.getAllWhat you see in n8n
Notes & use cases
Returns the contacts that sit on one list, which is the view you want when the list, not the individual, is the subject.
Key parameters
- List Name or ID: the list to read, from the dropdown or via an expression.
- Return All: on, n8n pages through the whole list; off, Limit caps the number of contacts returned.
Remove a contact from a list
contactList.removeWhat you see in n8n
Notes & use cases
Takes a contact off a list while leaving the record itself untouched, correcting a membership that no longer applies. Nothing on the contact changes.
Key parameters
- List Name or ID: the list the contact should leave.
- Contact ID: identifier or email of the person to remove.
List
2 operationsCreate a list
list.createWhat you see in n8n
Notes & use cases
Creates a new list in Autopilot from the workflow, which is useful when lists follow a rhythm: one per campaign, per event, per month.
Key parameters
- Name: the name of the list to create. Build it with an expression when it should carry a date or a campaign code, so every list is named the same way without anyone thinking about it.
Get many lists
list.getAllWhat you see in n8n
Notes & use cases
Returns the lists that exist in the account, with their identifiers. That is the operation you run when a later node needs a list ID it cannot hardcode.
Key parameters
- Return All: on, every list comes back; off, Limit sets the maximum number returned.
contactList.add so the automation keeps working after someone renames or recreates a list.Need help automating Autopilot with n8n?
A person reads every message.

