Reference · Tools
Autopilot
Manage contacts, lists, and customer journeys in Autopilot HQ marketing automation platform.
The Autopilot node connects your BusyBot workflows directly to Autopilot HQ, letting you create or update contacts, manage lists, and drop contacts into journeys via a trigger — all without leaving your automation. A common use case is syncing new form submissions as contacts and immediately enrolling them in an onboarding journey.
- Node type
- Action
- Parameters
- 20
- Outputs
- Output, Error
- Credentials
- Autopilot API
Autopilot
Manage contacts, lists, and journeys in Autopilot HQ.
Overview
Autopilot is a marketing automation platform for visual customer journeys, email marketing and contact management. This node gives you the contact side of that platform from a workflow: create or update a contact, read one, list many, or delete one; create and list contact lists; add, remove and check contacts on a list; and drop a contact into a journey by its trigger. Contacts can be addressed by either their Autopilot contact ID or their email address.
Category: Marketing
Tool Name: autopilot
Version: 1
Appearance: Icon: lucide-Bot | Color: #6ad178
Node Type
Action — processes input items and produces output
Input / Output
| Direction | Port(s) |
|---|---|
| Input | Input |
| Output | Output, Error |
Credentials
This tool requires Autopilot API credentials. See the Credentials Guide for setup instructions.
Resources
| Resource | Value |
|---|---|
| Contact | contact |
| Contact Journey | contactJourney |
| Contact List | contactList |
| List | list |
Operations
The operations available depend on the resource you select.
Contact
| Operation | Value | Description |
|---|---|---|
| Create or Update | upsert | Create a new contact, or update the current one if it already exists (upsert) |
| Delete | delete | Delete a contact |
| Get | get | Get a contact |
| Get Many | getAll | Get many contacts |
Contact Journey
| Operation | Value | Description |
|---|---|---|
| Add | add | Add a contact to a journey |
Contact List
| Operation | Value | Description |
|---|---|---|
| Add | add | Add contact to list |
| Exist | exist | Check if contact is on list |
| Get Many | getAll | Get many contacts from a list |
| Remove | remove | Remove a contact from a list |
List
| Operation | Value | Description |
|---|---|---|
| Create | create | Create a list |
| Get Many | getAll | Get many lists |
Parameters
Contact: Create or Update
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
string | Yes | — | Email address of the contact. Supports expressions. | |
| Additional Fields | collection | No | {} | Optional contact fields to set on the contact. |
| — Company | string | No | — | Contact’s company name. |
| — Custom Fields | fixedCollection | No | {} | Custom contact fields. You can add more than one. |
| — — Key | string | No | — | Custom field key in the format “FieldName-fieldType” (e.g., “My Field-string”). Get available fields from Autopilot Settings > Custom Fields. |
| — — Value | string | No | — | Value for the custom field. |
| — Fax | string | No | — | Contact’s fax number. |
| — First Name | string | No | — | Contact’s first name. |
| — Industry | string | No | — | Industry the contact works in. |
| — Last Name | string | No | — | Contact’s last name. |
| — Lead Source | string | No | — | Where the lead came from. |
| — LinkedIn URL | string | No | — | Contact’s LinkedIn profile URL. |
— List ID (autopilotList) | string | No | — | List ID to which this contact will be added on creation. Find the List ID in Autopilot under Settings > Lists. |
| — Mailing City | string | No | — | City of the contact’s mailing address. |
| — Mailing Country | string | No | — | Country of the contact’s mailing address. |
| — Mailing Postal Code | string | No | — | Postal code of the contact’s mailing address. |
| — Mailing State | string | No | — | State or region of the contact’s mailing address. |
| — Mailing Street | string | No | — | Street of the contact’s mailing address. |
| — Mobile Phone | string | No | — | Contact’s mobile phone number. |
| — New Email | string | No | — | If provided, will change the email address of the contact identified by the Email field. |
| — Notify | boolean | No | true | Whether Autopilot should fire webhook notifications for contact_added/contact_updated events. Disable to skip notifications. |
| — Number of Employees | number | No | 0 | Number of employees at the contact’s company. |
| — Owner Name | string | No | — | Name of the contact’s owner in Autopilot. |
| — Phone | string | No | — | Contact’s phone number. |
| — Salutation | string | No | — | Salutation to address the contact by. |
| — Session ID | string | No | — | Used to associate a contact with a session. |
| — Status | string | No | — | Contact’s status. |
| — Subscribe | boolean | No | false | Whether to subscribe or un-subscribe a contact. |
| — Title | string | No | — | Contact’s job title. |
| — Website URL | string | No | — | Contact’s website URL. |
Contact: Delete
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Contact ID | string | Yes | — | Contact ID or email address. Supports expressions. |
Contact: Get
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Contact ID | string | Yes | — | Contact ID or email address. Supports expressions. |
Contact: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 100 | Max number of results to return. (shown when Return All is false) |
Contact Journey: Add
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Trigger ID | string | Yes | — | Journey trigger ID. Find available triggers via the Autopilot API (GET /triggers) or in the Autopilot dashboard under Journeys. |
| Contact ID | string | Yes | — | Contact ID or email address. Supports expressions. |
Contact List: Add
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
List ID (listId) | string | Yes | — | List ID. Find available lists via the Autopilot API (GET /lists) or in the Autopilot dashboard under Settings > Lists. |
| Contact ID | string | Yes | — | Contact ID or email address. Supports expressions. |
Contact List: Exist
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
List ID (listId) | string | Yes | — | List ID. Find available lists via the Autopilot API (GET /lists) or in the Autopilot dashboard under Settings > Lists. |
| Contact ID | string | Yes | — | Contact ID or email address. Supports expressions. |
Contact List: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
List ID (listId) | string | Yes | — | List ID. Find available lists via the Autopilot API (GET /lists) or in the Autopilot dashboard under Settings > Lists. |
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 100 | Max number of results to return. (shown when Return All is false) |
Contact List: Remove
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
List ID (listId) | string | Yes | — | List ID. Find available lists via the Autopilot API (GET /lists) or in the Autopilot dashboard under Settings > Lists. |
| Contact ID | string | Yes | — | Contact ID or email address. Supports expressions. |
List: Create
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Name | string | Yes | — | Name of the list to create. Supports expressions. |
List: Get Many
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 100 | Max number of results to return. (shown when Return All is false) |
All Operations
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Max Concurrency | number | No | 10 | Maximum number of items to process concurrently. |
Output Data
The result is merged onto the incoming item JSON — the fields you already had stay on the item, and any field of the same name is overwritten by the result. Binary data on the input item is forwarded unchanged.
Single-record operations produce one output item per input item. The three Get Many operations fan out: they emit one output item per record returned, so an input item that lists 100 contacts leaves 100 items on the Output port. Use Return All and Limit to control how many.
| Resource: Operation | What lands on the item |
|---|---|
contact: upsert | The contact record returned by Autopilot. |
contact: delete | success: true |
contact: get | The contact record returned by Autopilot. |
contact: getAll | One item per contact. |
contactJourney: add | success: true |
contactList: add | success: true |
contactList: exist | exist: true when the contact is on the list, exist: false when the lookup does not succeed. |
contactList: getAll | One item per contact on the list. |
contactList: remove | success: true |
list: create | The list record returned by Autopilot. |
list: getAll | One item per list. |
A membership check therefore leaves an item shaped like this, with the upstream fields still in place:
{
"email": "jane@example.com",
"exist": true
}
The contact and list records carry whatever fields Autopilot stores for them. A few Additional Fields are sent under a different API name — New Email as _NewEmail, List ID as _autopilot_list, Session ID as _autopilot_session_id, and Custom Fields under custom — so do not expect those back on the item under the names you set them with. Reference the result downstream by expression, for example {{ $json.exist }}.
Usage Examples
- Create or update a contact in Autopilot by email address
- Get all contacts from an Autopilot list
- Add a contact to a journey in Autopilot
- Check if a contact exists on a specific Autopilot list
- Create a new contact list in Autopilot
Example Configuration
Create or update a contact from an incoming item, including one custom field:
{
"type": "autopilot",
"parameters": {
"resource": "contact",
"operation": "upsert",
"email": "{{ $json.email }}",
"additionalFields": {
"FirstName": "{{ $json.firstName }}",
"LastName": "{{ $json.lastName }}",
"Company": "{{ $json.company }}",
"Title": "Marketing Director",
"Status": "Qualified Lead",
"notify": true,
"customFieldsUi": {
"customFieldsValues": [
{
"key": "Lead Score-integer",
"value": "{{ $json.score }}"
}
]
}
}
}
}
Add that contact to a nurturing journey by its trigger ID:
{
"type": "autopilot",
"parameters": {
"resource": "contactJourney",
"operation": "add",
"triggerId": "0001",
"contactId": "{{ $json.email }}"
}
}
Check whether a contact is already on the VIP list before doing anything else:
{
"type": "autopilot",
"parameters": {
"resource": "contactList",
"operation": "exist",
"listId": "contactlist_01ABCDEF",
"contactId": "{{ $json.email }}"
}
}
Read the first 100 contacts on a list, one output item per contact:
{
"type": "autopilot",
"parameters": {
"resource": "contactList",
"operation": "getAll",
"listId": "contactlist_01ABCDEF",
"returnAll": false,
"limit": 100
}
}
Create a list named after a field on the item:
{
"type": "autopilot",
"parameters": {
"resource": "list",
"operation": "create",
"name": "Leads — {{ $json.campaign }}"
}
}
Error Handling
| Mode | Behavior |
|---|---|
| stop | Halts workflow on first error |
| continue | Skips failed items, passes successful ones through |
| errorPort | Routes failed items to Error output port |
Tips
Use Autopilot to manage contacts, lists, and customer journeys in the Autopilot HQ marketing automation platform.
Frequently asked questions
How do I authenticate with Autopilot HQ?
This node uses the Autopilot API credential type (autopilotApi). You'll need to create that credential in BusyBot using your Autopilot HQ API key before the node will connect. The credential is not shared with other marketing nodes, so you'll set it up specifically for this one.
Can I look up a contact by email address instead of an internal ID?
Yes. The node supports addressing contacts by either their Autopilot contact ID or their email address. This means you can feed an email from an upstream step — such as a form submission or CRM record — directly into the node without first fetching the Autopilot-specific ID.
What exactly can this node do with contact lists?
You can create a new list, retrieve all existing lists, add a contact to a list, remove a contact from a list, and check whether a specific contact is already on a list. That last operation is useful for branching logic — for example, skipping contacts who are already enrolled in a segment.
How does triggering a customer journey work from this node?
The node can enroll a contact into a journey by referencing the journey's trigger. You supply the contact (by ID or email) and the target trigger, and Autopilot will start that contact on the journey from that entry point. You need to know your trigger identifier in Autopilot HQ ahead of time — the node does not expose a way to list available journeys.
What happens if the Autopilot API call fails — where does the error go?
This node has two distinct outputs: Output and Error. Successful operations route through Output; failures route through Error. This lets you wire a separate branch in your workflow to handle API errors — logging them, sending an alert, or retrying — without halting the entire flow.
Build with the Autopilot node
Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Autopilot API credentials first.
Open BusyBotLast updated . Spotted something wrong? Tell us.