api-campaign-limitations
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
Recommended Workflow
The typical Customer.io workflow is:
- Design in UI: Create and configure campaigns/broadcasts in the Customer.io interface
- Activate: Activate the campaigns/broadcasts
- Trigger via API: Use API calls to trigger the pre-configured campaigns
- Send events: Send tracking events that trigger campaigns based on defined conditions
- Personalize: Use liquid syntax to personalize messages with data from API calls
API Types
Customer.io provides three main APIs:
- Track API - For sending customer data and events
- App API - For triggering broadcasts and retrieving campaign data
- Pipelines API - For data integration and event streaming
Rate Limits Summary
| Operation | Rate Limit |
|---|---|
| API-triggered broadcasts | 1 per 10 seconds |
| Transactional messages | 100 per second |
| Broadcast queue | 5 simultaneous max |
| Recipients per transactional | 15 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.