GoodInbound

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 optional triggerConfig. Steps use sortOrder, type, config, and an optional condition; updates are partial.
  • Triggers: form_submitted, lead_conversion_changed, booking_created, booking_cancelled, booking_pending, booking_confirmed, new_contact_created, tag_added, manual, and scheduled.
  • Step types: send_email, ai_research, add_tag, remove_tag, wait, condition, webhook, update_contact, meta_conversion, and tiktok_conversion.
  • A workflow can have at most 3 send_email steps. Creating a fourth, or changing another step to send_email, returns 400.