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

> Node: Customer.io Trigger (`customerio_trigger`) · Webhook trigger · v1
> Category: Marketing · Credentials: Customer.io (`customerIoApi`)
> Updated: 2026-08-16

# Customer.io Trigger

> Trigger on Customer.io reporting events

## Overview

Starts a workflow when Customer.io sends a reporting webhook event. Supports 31 event types across customer, email, push, Slack, and SMS channels. Events include subscription changes, delivery status, opens, clicks, bounces, spam reports, and more. The webhook receives POST requests from Customer.io's reporting webhook system with event payloads containing message metadata, recipient info, and event-specific data.

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

**Appearance:** Icon: `lucide-Users` | Color: `#FFD100`

## Node Type

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

## Input / Output

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

## Credentials

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

### Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Events | `multiOptions` | Yes | `[]` | Which Customer.io reporting events to listen for. |
| | | | | Options: `customer.subscribed`, `customer.unsubscribed`, `email.attempted`, `email.bounced`, `email.clicked`, `email.converted`, `email.delivered`, `email.drafted`, `email.failed`, `email.opened`, `email.sent`, `email.spammed`, `push.attempted`, `push.bounced`, `push.clicked`, `push.delivered`, `push.drafted`, `push.failed`, `push.opened`, `push.sent`, `slack.attempted`, `slack.clicked`, `slack.drafted`, `slack.failed`, `slack.sent`, `sms.attempted`, `sms.bounced`, `sms.clicked`, `sms.delivered`, `sms.drafted`, `sms.failed`, `sms.sent` |

## Output Data

Each delivery from Customer.io produces one output item. The webhook payload is copied onto the item unchanged, and three fields are added:

- `_trigger` — always `customerio_webhook`
- `_timestamp` — ISO 8601 timestamp of when the request arrived
- `_webhookEvent` — the reported event, taken from the payload's `event_type` field, falling back to `metric`

The Customer.io payload itself carries:

- `event_id` — the unique ID of this reporting event
- `event_type` — the event that occurred, e.g. `email_opened`
- `metric` — the metric name for the event
- `object_type` — the kind of object the event is about
- `timestamp` — the Customer.io event timestamp, in epoch seconds
- `data` — the event detail, with `action_id`, `campaign_id`, `customer_id`, `delivery_id`, `identifiers`, and `recipient`

Reference the payload downstream by expression, e.g. `{{ $json.data.customer_id }}` or `{{ $json.data.recipient }}`.

## Usage Examples

- trigger workflow when a customer subscribes
- start when an email is opened in Customer.io
- listen for email bounce events from Customer.io
- monitor SMS delivery events from Customer.io

## Example Configuration

Listen for email engagement events:

```json
{
  "type": "customerio_trigger",
  "parameters": {
    "events": ["email.opened", "email.clicked", "email.bounced"]
  }
}
```

Listen for subscription changes across the whole workspace:

```json
{
  "type": "customerio_trigger",
  "parameters": {
    "events": ["customer.subscribed", "customer.unsubscribed"]
  }
}
```

Listen for delivery failures on every channel:

```json
{
  "type": "customerio_trigger",
  "parameters": {
    "events": ["email.failed", "push.failed", "slack.failed", "sms.failed"]
  }
}
```

### 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

Entry point that fires when Customer.io sends a reporting webhook event. Supports customer, email, push, Slack, and SMS events. Outputs the full event payload for downstream processing.