Skip to content

Workflows

Chain HTTP requests and logic into workflows.

{
"name": "User Onboarding",
"slug": "user-onboarding",
"trigger_type": "webhook",
"webhook_token": "uuid",
"steps": [
{
"name": "Create Account",
"step_type": "http_request",
"config": {
"url": "https://api.example.com/users",
"method": "POST",
"body": "{\"email\": \"{{trigger.payload.email}}\"}"
},
"timeout_seconds": 30,
"on_failure": "stop"
},
{
"name": "Delay",
"step_type": "delay",
"config": {"seconds": 300},
"on_failure": "continue"
},
{
"name": "Send Email",
"step_type": "http_request",
"config": {
"url": "https://api.sendgrid.com/v3/mail/send",
"method": "POST"
},
"on_failure": "retry"
}
]
}

Manual: Click “Run” in dashboard or via API

Webhook:

POST /webhooks/{webhook_token}
{
"user_id": "123",
"email": "[email protected]"
}

No authentication required. Token is secret.

Scheduled: Set trigger_type: "scheduled" with cron schedule (future)

Handlebars syntax in step config:

  • {{trigger.payload.key}} - Webhook payload
  • {{secrets.API_KEY}} - Environment secrets (decrypted)
  • {{steps.step1.response.id}} - Previous step output

All string values templated at runtime.

Per-step on_failure:

  • stop: Abort workflow
  • continue: Skip step, continue to next
  • retry: Retry step (configurable count/delay)
{
"id": "uuid",
"status": "completed",
"started_at": "2025-02-01T12:00:00Z",
"completed_at": "2025-02-01T12:05:23Z",
"trigger_payload": {"user_id": "123"},
"steps": [
{
"step_index": 0,
"status": "success",
"http_status": 201,
"response_body": "{\"id\": \"user456\"}",
"duration_ms": 234
}
]
}

Status: pending, running, completed, failed, partial_failure

GET /api/v1/projects/{slug}/environments/{env}/workflows
POST /api/v1/projects/{slug}/environments/{env}/workflows
GET /api/v1/projects/{slug}/environments/{env}/workflows/{workflowSlug}
PATCH /api/v1/projects/{slug}/environments/{env}/workflows/{workflowSlug}
DELETE /api/v1/projects/{slug}/environments/{env}/workflows/{workflowSlug}
POST /api/v1/projects/{slug}/environments/{env}/workflows/{workflowSlug}/trigger
GET /api/v1/projects/{slug}/environments/{env}/workflows/{workflowSlug}/runs
  • Personal (Free): 5 workflows, 100 runs/month
  • Starter ($5/user): Unlimited workflows and runs