Skip to main content

Overview

Conductor supports webhooks in two directions:
  1. Inbound Webhooks - Trigger ensembles by calling a webhook URL
  2. Outbound Notifications - Send events from ensembles to your webhooks

Inbound Webhooks

Expose ensembles as webhook endpoints that can be triggered by external services.
You own your webhook paths. You can define any path for your webhooks (e.g., /github/events, /stripe/payments, /my-custom-path). We recommend using /webhooks/* paths for clarity and consistency (e.g., /webhooks/github, /webhooks/stripe).

Configure Inbound Webhook

Trigger Inbound Webhook

Response:

Authentication Options

Bearer Token:
HMAC Signature:
When using HMAC signature auth, the sender must include these headers:
The signature is computed as:
OAuth (coming soon):
Basic Authentication:
Public (No Auth):

Outbound Notifications

Send notifications when events occur during ensemble execution.

Configure Notifications

Notification Events

execution.started

Triggered when execution begins.

execution.completed

Triggered when execution completes successfully.

execution.failed

Triggered when execution fails.

execution.timeout

Triggered when execution times out.

agent.completed

Triggered when individual agent completes.

state.updated

Triggered when state changes.

Signature Verification

All webhook notifications include a signature for verification.

Headers

Verify Signature (Node.js)

Verify Signature (Python)

Handling Notifications

Basic Handler

Async Processing

Error Handling

Retry Logic

Conductor retries failed webhook notifications with exponential backoff:
  1. 1 second - First retry
  2. 5 seconds - Second retry
  3. 30 seconds - Third retry
  4. 2 minutes - Fourth retry
  5. 5 minutes - Final retry
Total attempts: Up to 3 retries (configurable) Status codes that trigger retry:
  • 5xx - Server errors
  • 408 - Request Timeout
  • Connection errors / timeouts
Status codes that don’t retry:
  • 2xx, 3xx - Success
  • 4xx - Client errors (except 408)

Email Notifications

Send email alerts for ensemble events.

Configure Email Notifications

Subject Template Variables

  • ${event} - Event type (e.g., “execution.failed”)
  • ${ensemble.name} - Ensemble name
  • ${timestamp} - Event timestamp

Email Content

Emails include both plain text and HTML versions:
  • Plain Text: JSON-formatted event data
  • HTML: Styled template with color-coded event types
    • Green: execution.completed
    • Red: execution.failed, execution.timeout
    • Blue: Other events

Testing Webhooks

Local Testing with ngrok

Test Notification Delivery

Best Practices

1. Verify Signatures

2. Respond Quickly

3. Handle Idempotency

4. Log All Notifications

5. Monitor Failures

6. Use Default-Deny Security

Next Steps

MCP Integration

Expose ensembles as MCP tools

Email Operation

Trigger ensembles via email

Authentication

Security best practices

Event-Driven

Event patterns