Workflow API
All routes here need a project API key: Authorization: Bearer gi_live_.... See Authentication.
Workflows#
Manage workflow definitions and their ordered steps, inspect runs, and start manual or test runs. For what triggers and actions do, see Workflows and Webhooks.
| Method | Path | Description |
|---|---|---|
| GET | /api/projects/:projectId/workflows |
List workflows. |
| POST | /api/projects/:projectId/workflows |
Create a workflow. |
| GET | /api/projects/:projectId/workflows/:workflowId |
Get a workflow. |
| PUT | /api/projects/:projectId/workflows/:workflowId |
Update a workflow. |
| DELETE | /api/projects/:projectId/workflows/:workflowId |
Delete a workflow. |
| GET | /api/projects/:projectId/workflows/:workflowId/steps |
List workflow steps. |
| POST | /api/projects/:projectId/workflows/:workflowId/steps |
Create a workflow step. |
| PUT | /api/projects/:projectId/workflows/:workflowId/steps/:stepId |
Update a workflow step. |
| DELETE | /api/projects/:projectId/workflows/:workflowId/steps/:stepId |
Delete a workflow step. |
| PUT | /api/projects/:projectId/workflows/:workflowId/steps/reorder |
Reorder workflow steps. |
| GET | /api/projects/:projectId/workflows/:workflowId/runs |
List workflow runs with an optional limit. |
| GET | /api/projects/:projectId/workflows/:workflowId/runs/:runId |
Get one run with step snapshots. |
| POST | /api/projects/:projectId/workflows/:workflowId/trigger |
Start a manual workflow run. |
| POST | /api/projects/:projectId/workflows/:workflowId/test |
Test a workflow against supplied context. |
- Create a workflow with
name,trigger, and an optionaltriggerConfig. Steps usesortOrder,type,config, and an optionalcondition; updates are partial. - Triggers:
form_submitted,lead_conversion_changed,booking_created,booking_cancelled,booking_pending,booking_confirmed,new_contact_created,tag_added,manual, andscheduled. - Step types:
send_email,ai_research,add_tag,remove_tag,wait,condition,webhook,update_contact,meta_conversion, andtiktok_conversion. - A workflow can have at most 3
send_emailsteps. Creating a fourth, or changing another step tosend_email, returns 400.