<!-- BusyBot node reference — https://busybot.net/tools/autopilot/ -->

> Node: Autopilot (`autopilot`) · Action · v1
> Category: Marketing · Credentials: Autopilot API (`autopilotApi`)
> Updated: 2026-08-16

# 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](https://busybot.net/credentials/autopilot-api/) 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 |
|-----------|------|----------|---------|-------------|
| Email | `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:

```json
{
  "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:

```json
{
  "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:

```json
{
  "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:

```json
{
  "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:

```json
{
  "type": "autopilot",
  "parameters": {
    "resource": "contactList",
    "operation": "getAll",
    "listId": "contactlist_01ABCDEF",
    "returnAll": false,
    "limit": 100
  }
}
```

Create a list named after a field on the item:

```json
{
  "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.