Overview
Triggers define how ensembles are invoked. Conductor supports five trigger types, all configured using the unifiedtrigger: array in your ensemble YAML:
- Webhook - HTTP endpoints for external integrations
- MCP - Model Context Protocol tool exposure
- Email - Email routing and processing
- Queue - Cloudflare Queues message processing
- Cron - Scheduled execution with cron expressions
Webhook Triggers
Expose ensembles as HTTP endpoints for external services.Basic Webhook
Authenticated Webhook
Webhook Authentication Types
Bearer Token:Async Webhook Execution
For long-running ensembles, return immediately and process in background:MCP Triggers
Expose ensembles as Model Context Protocol tools for AI assistants.Basic MCP Tool
Public MCP Tool
Email Triggers
Trigger ensembles via Cloudflare Email Routing.Basic Email Trigger
Email Input Fields
Ensembles receive:input.from- Sender email addressinput.to- Recipient email addressinput.subject- Email subjectinput.body- Email body (text or HTML)input.headers- All email headers
Reply with Output
Whenreply_with_output: true, ensemble outputs are sent back via email:
Queue Triggers
Process Cloudflare Queue messages in batches.Basic Queue Consumer
Queue Configuration
queue- Cloudflare Queue binding name (must match wrangler.toml)batch_size- Maximum messages per batch (default: 10)max_retries- Retry failed messages (default: 3)max_wait_time- Max seconds to wait for batch to fill
queue operation - see Queue Operation documentation.
Cron Triggers
Schedule ensemble execution with cron expressions.Basic Cron Trigger
Cron Expression Format
Standard cron syntax (5 or 6 fields):"0 0 * * *"- Daily at midnight UTC"0 */4 * * *"- Every 4 hours"0 9 * * 1-5"- Weekdays at 9 AM"0 0 1 * *"- First day of month"0 0 * * 0"- Every Sunday
Cron with Custom Input
Pass data to scheduled executions:Multiple Cron Triggers
Ensembles can have multiple schedules:Disable Cron Trigger
Temporarily disable without removing:Schedule Metadata
Access schedule information in ensemble:Multiple Triggers
Ensembles can have multiple triggers of different types:- POST to
/webhooks/process - MCP tool call
data-processor - Email to
process@example.com - Queue message to
PROCESS_QUEUE - Cron schedule every 6 hours
Trigger Security
Default-Deny Policy
All triggers (except queue and cron) require either:- Authentication (
authconfiguration), OR - Explicit public access (
public: true)
Best Practices
-
Use environment variables for secrets:
-
Verify webhook signatures:
Use
signatureauth type for external webhooks -
Limit email senders:
-
Use async for long operations:
Configuration Reference
Webhook Trigger
| Field | Type | Required | Description |
|---|---|---|---|
type | "webhook" | Yes | Trigger type |
path | string | No | Endpoint path (default: /{ensemble-name}) |
methods | string[] | No | HTTP methods (default: ["POST"]) |
auth | object | Conditional | Authentication config (required unless public: true) |
public | boolean | No | Allow unauthenticated access (default: false) |
async | boolean | No | Background execution (default: false) |
timeout | number | No | Timeout in milliseconds |
MCP Trigger
| Field | Type | Required | Description |
|---|---|---|---|
type | "mcp" | Yes | Trigger type |
auth | object | Conditional | Authentication config (required unless public: true) |
public | boolean | No | Allow unauthenticated access (default: false) |
Email Trigger
| Field | Type | Required | Description |
|---|---|---|---|
type | "email" | Yes | Trigger type |
addresses | string[] | Yes | Email addresses to receive |
auth | object | No | Sender whitelist patterns |
public | boolean | No | Allow any sender (default: false) |
reply_with_output | boolean | No | Send output via email reply (default: false) |
Queue Trigger
| Field | Type | Required | Description |
|---|---|---|---|
type | "queue" | Yes | Trigger type |
queue | string | Yes | Queue binding name |
batch_size | number | No | Max messages per batch (default: 10) |
max_retries | number | No | Retry failed messages (default: 3) |
max_wait_time | number | No | Max seconds to wait for batch |
Cron Trigger
| Field | Type | Required | Description |
|---|---|---|---|
type | "cron" | Yes | Trigger type |
cron | string | Yes | Cron expression |
timezone | string | No | IANA timezone (default: "UTC") |
enabled | boolean | No | Enable trigger (default: true) |
input | object | No | Default input data |
metadata | object | No | Schedule metadata |

