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

> Node: Autopilot Trigger (`autopilot_trigger`) · Webhook trigger · v1
> Category: Marketing · Credentials: Autopilot API (`autopilotApi`)
> Updated: 2026-08-16

# Autopilot Trigger

> Trigger on Autopilot contact events

## Overview

Receives webhook notifications from Autopilot HQ when contact events occur, such as contacts being added, updated, unsubscribed, or moved between lists and segments. Autopilot sends a POST request with the contact data to the registered webhook URL.

**Category:** Marketing  
**Tool Name:** `autopilot_trigger`  
**Version:** 1

**Appearance:** Icon: `lucide-Bot` | Color: `#4bc882`

## Node Type

**Trigger** — webhook (receives incoming HTTP callbacks)

## Input / Output

| Direction | Port(s) |
|-----------|--------|
| Input | None (trigger node) |
| Output | `Output` |

## Credentials

This tool requires **Autopilot API** credentials.
See the [Credentials Guide](https://busybot.net/credentials/autopilot-api/) for setup instructions.

### Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Event | `options` | Yes | — | The contact event to listen for. |
| | | | | Options: `contactAdded`, `contactAddedToList`, `contactEnteredSegment`, `contactLeftSegment`, `contactRemovedFromList`, `contactUnsubscribed`, `contactUpdated` |

## Output Data

Autopilot delivers either a single contact object or an array of them. **Each contact in the payload becomes its own output item**, so one delivery can start the workflow with several items.

Each item carries the contact as Autopilot sent it — typically `contact_id`, `Email`, `FirstName`, `LastName`, `Company`, `Phone`, `Status`, `LeadSource`, `lists`, and `segments`, plus any custom fields on your contacts — with three added fields:

- `_trigger` — always `autopilot_webhook`
- `_timestamp` — ISO 8601 timestamp of when the request arrived
- `_webhookEvent` — the event this webhook was registered for

Reference the payload downstream by expression, e.g. `{{ $json.Email }}` or `{{ $json.contact_id }}`.

## Usage Examples

- Start a workflow when a new contact is added in Autopilot
- Trigger an action when a contact unsubscribes in Autopilot
- React to contacts being added to or removed from lists
- Detect when a contact enters or leaves a segment

## Example Configuration

Start a workflow whenever a contact is added:

```json
{
  "type": "autopilot_trigger",
  "parameters": {
    "event": "contactAdded"
  }
}
```

React to unsubscribes:

```json
{
  "type": "autopilot_trigger",
  "parameters": {
    "event": "contactUnsubscribed"
  }
}
```

Watch for segment entry:

```json
{
  "type": "autopilot_trigger",
  "parameters": {
    "event": "contactEnteredSegment"
  }
}
```

### Trigger Behavior

- **Activation:** When the workflow is activated, a webhook endpoint is registered with the service.
- **Deactivation:** The webhook is automatically unregistered when the workflow is deactivated.
- **Payload:** The incoming webhook payload is parsed and output as workflow items.
- **Verification:** Supports signature verification where applicable.

## Tips

Receives webhook events from Autopilot HQ for contact lifecycle changes. Select the event type to listen for and configure your Autopilot API key.

- One node listens for **one** event. To react to several, add one Autopilot Trigger per event and merge their outputs.
- Because a single delivery can contain several contacts, downstream nodes run once per contact — no Split Out node is needed.
- `contactAddedToList` and `contactRemovedFromList` fire for every list, and `contactEnteredSegment` / `contactLeftSegment` for every segment. Add a Filter node on `{{ $json.lists }}` or `{{ $json.segments }}` when you only care about one.