Purpose

This research addresses whether Customer.io supports creating campaigns programmatically through their API, or if campaigns must be created through the UI.

Key Findings

Customer.io does NOT support creating campaigns programmatically through their API. All campaigns, broadcasts, and workflows must be designed and configured in the Customer.io UI first.

What You CANNOT Do via API

  • Create new campaigns - Campaign creation is UI-only
  • Create new broadcasts - Broadcast creation is UI-only
  • Design workflow automations - All workflow design happens in the UI
  • Configure message templates - Templates must be set up in the UI

What You CAN Do via API

1. Trigger API-Triggered Broadcasts

After creating a broadcast in the UI, you can trigger it programmatically:

  • Rate limit: 1 request per 10 seconds
  • Queue limit: Maximum 5 broadcasts can be queued simultaneously
  • Can specify recipients programmatically or use UI-defined segments
  • Supports data passing for message personalization via liquid syntax

2. Send Transactional Messages

Trigger pre-configured transactional messages:

  • Rate limit: 100 requests per second (higher than broadcasts)
  • Recipient limit: 15 total recipients per message (To and BCC combined)
  • Messages must be configured in UI first

3. Retrieve Campaign Data

  • Get metadata and information about existing campaigns
  • Retrieve campaign metrics and performance data
  • Access individual campaign details

4. Send Tracking Data

Use the Pipelines API to:

  • Send events that trigger pre-configured campaigns
  • Track user behavior and attributes
  • Associate people with segments and attributes

The typical Customer.io workflow is:

  1. Design in UI: Create and configure campaigns/broadcasts in the Customer.io interface
  2. Activate: Activate the campaigns/broadcasts
  3. Trigger via API: Use API calls to trigger the pre-configured campaigns
  4. Send events: Send tracking events that trigger campaigns based on defined conditions
  5. Personalize: Use liquid syntax to personalize messages with data from API calls

API Types

Customer.io provides three main APIs:

  1. Track API - For sending customer data and events
  2. App API - For triggering broadcasts and retrieving campaign data
  3. Pipelines API - For data integration and event streaming

Rate Limits Summary

OperationRate Limit
API-triggered broadcasts1 per 10 seconds
Transactional messages100 per second
Broadcast queue5 simultaneous max
Recipients per transactional15 total (To + BCC)

Implications

If you need fully programmatic campaign creation without UI interaction, Customer.io may not be the right solution. Consider:

  • Alternative platforms that support programmatic campaign creation
  • Infrastructure as Code approaches for campaign management
  • API-first platforms designed for developer workflows

However, if your use case involves:

  • Creating campaign templates in UI once
  • Triggering them programmatically many times
  • High-volume transactional messaging

Then Customer.io’s API capabilities may be sufficient.

Authentication

All requests to the Customer.io App API use an App API Key, provided as a Bearer token in an HTTP Authorization header.

Sources

  1. Customer.io API-triggered broadcasts
  2. Customer.io API Reference
  3. About Customer.io’s APIs
  4. Campaign concepts & settings
  5. Campaigns, broadcasts, and transactional messages
  6. Customer.io Pipelines API