Workflow
A lightweight workflow engine over contacts: steps, triggers and what happens next.
partLines of business113 operationsid workflow
How it sits
A part does one thing, and any other part can call it. The counts and the links below are from the platform's spec and the other services' own descriptions.
| Operations | 113 GET 50 · POST 43 · DELETE 15 · PATCH 5 |
| Resources | 13 |
| Leaned on by | Scout |
| Leans on | none named |
| In recipes | An inbound text that updates a profile |
What it can do
113 operations in 13 resources, as the spec declares them. Each row is one call; paths are relative to the part.
tenants
| Method | Path | Does |
|---|---|---|
| GET | /api/tenants/ | List all tenants |
| POST | /api/tenants/ | Create new tenant |
| DELETE | /api/tenants/{tenant_id} | Delete tenant |
| GET | /api/tenants/{tenant_id} | Get tenant by ID |
| PATCH | /api/tenants/{tenant_id} | Update tenant |
| GET | /api/tenants/{tenant_id}/contacts | List tenant contacts |
| POST | /api/tenants/{tenant_id}/contacts | Create contact in tenant |
| GET | /api/tenants/{tenant_id}/contacts/search | Search tenant contacts |
| DELETE | /api/tenants/{tenant_id}/contacts/{contact_id} | Delete tenant contact |
| GET | /api/tenants/{tenant_id}/contacts/{contact_id} | Get contact by ID |
| PATCH | /api/tenants/{tenant_id}/contacts/{contact_id} | Update tenant contact |
| DELETE | /api/tenants/{tenant_id}/contacts/{contact_id}/tags/{tag} | Remove tag from contact |
| POST | /api/tenants/{tenant_id}/contacts/{contact_id}/tags/{tag} | Add tag to contact |
| GET | /api/tenants/{tenant_id}/contacts/{contact_id}/timeline | Get contact activity timeline |
| GET | /api/tenants/{tenant_id}/credentials/ | List tenant credentials |
| POST | /api/tenants/{tenant_id}/credentials/ | Create or update credential |
| POST | /api/tenants/{tenant_id}/credentials/api-key | Create API key credential |
| GET | /api/tenants/{tenant_id}/credentials/{connector_type}/check | Check credential exists |
| DELETE | /api/tenants/{tenant_id}/credentials/{credential_id} | Delete credential |
| GET | /api/tenants/{tenant_id}/credentials/{credential_id} | Get credential by ID |
| DELETE | /api/tenants/{tenant_id}/email | Delete email configuration |
| GET | /api/tenants/{tenant_id}/email | Get email configuration |
| POST | /api/tenants/{tenant_id}/email/disable | Disable tenant email |
| POST | /api/tenants/{tenant_id}/email/resend | Resend verification email |
| POST | /api/tenants/{tenant_id}/email/setup | Set up tenant email |
| POST | /api/tenants/{tenant_id}/email/verify | Verify tenant email |
| GET | /api/tenants/{tenant_id}/instances | List tenant instances |
| POST | /api/tenants/{tenant_id}/instances | Create workflow instance |
| DELETE | /api/tenants/{tenant_id}/instances/{instance_id} | Delete workflow instance |
| GET | /api/tenants/{tenant_id}/instances/{instance_id} | Get instance by ID |
| POST | /api/tenants/{tenant_id}/instances/{instance_id}/notes | Add note to instance |
| POST | /api/tenants/{tenant_id}/instances/{instance_id}/pause | Pause workflow instance |
| POST | /api/tenants/{tenant_id}/instances/{instance_id}/resume | Resume paused instance |
| POST | /api/tenants/{tenant_id}/instances/{instance_id}/start | Start workflow instance |
| POST | /api/tenants/{tenant_id}/instances/{instance_id}/state | Update instance state |
| GET | /api/tenants/{tenant_id}/instances/{instance_id}/timeline | Get instance timeline |
| POST | /api/tenants/{tenant_id}/instances/{instance_id}/transition | Manually transition instance |
| DELETE | /api/tenants/{tenant_id}/sms | Delete SMS configuration |
| GET | /api/tenants/{tenant_id}/sms | Get SMS configuration |
| POST | /api/tenants/{tenant_id}/sms/disable | Disable tenant SMS |
| POST | /api/tenants/{tenant_id}/sms/resend | Resend verification code |
| POST | /api/tenants/{tenant_id}/sms/setup | Set up tenant SMS |
| POST | /api/tenants/{tenant_id}/sms/verify | Verify tenant SMS |
| GET | /api/tenants/{tenant_id}/workflows | List tenant workflows |
| POST | /api/tenants/{tenant_id}/workflows | Create workflow template |
| DELETE | /api/tenants/{tenant_id}/workflows/{template_id} | Delete workflow template |
| GET | /api/tenants/{tenant_id}/workflows/{template_id} | Get workflow by ID |
| PATCH | /api/tenants/{tenant_id}/workflows/{template_id} | Update workflow template |
| POST | /api/tenants/{tenant_id}/workflows/{template_id}/clone | Clone workflow template |
| GET | /api/tenants/{tenant_id}/workflows/{template_id}/validate | Validate workflow graph |
50 operations
instances
| Method | Path | Does |
|---|---|---|
| GET | /api/instances | List all workflow instances |
| POST | /api/instances | Create workflow instance |
| DELETE | /api/instances/{instance_id} | Delete workflow instance |
| GET | /api/instances/{instance_id} | Get workflow instance by ID |
| POST | /api/instances/{instance_id}/notes | Add note to instance timeline |
| POST | /api/instances/{instance_id}/pause | Pause workflow instance |
| POST | /api/instances/{instance_id}/resume | Resume paused workflow instance |
| POST | /api/instances/{instance_id}/start | Start workflow instance |
| POST | /api/instances/{instance_id}/state | Update instance state |
| GET | /api/instances/{instance_id}/timeline | Get instance event timeline |
| POST | /api/instances/{instance_id}/transition | Manually transition workflow instance |
11 operations
connectors
| Method | Path | Does |
|---|---|---|
| GET | /api/connectors | List all connectors |
| POST | /api/connectors/execute | Execute connector action |
| GET | /api/connectors/health | Get all connector health |
| GET | /api/connectors/specs | List all connector specifications |
| DELETE | /api/connectors/tasks/{task_id} | Cancel pending task |
| GET | /api/connectors/tasks/{task_id} | Get task status |
| POST | /api/connectors/webhook/{connector_type} | Receive external webhook |
| GET | /api/connectors/{connector_type} | Get connector by type |
| GET | /api/connectors/{connector_type}/health | Get connector health |
| GET | /api/connectors/{connector_type}/spec | Get connector specification |
10 operations
contacts
| Method | Path | Does |
|---|---|---|
| GET | /api/contacts | List all contacts |
| POST | /api/contacts | Create new contact |
| GET | /api/contacts/search | Search contacts by name/email/phone |
| DELETE | /api/contacts/{contact_id} | Delete contact |
| GET | /api/contacts/{contact_id} | Get contact by ID |
| PATCH | /api/contacts/{contact_id} | Update existing contact |
| DELETE | /api/contacts/{contact_id}/tags/{tag} | Remove tag from contact |
| POST | /api/contacts/{contact_id}/tags/{tag} | Add tag to contact |
| GET | /api/contacts/{contact_id}/timeline | Get contact activity timeline |
9 operations
| Method | Path | Does |
|---|---|---|
| GET | /api/email/dead-letters | List email dead letters |
| POST | /api/email/dead-letters/cleanup | Clean up old email dead letters |
| GET | /api/email/dead-letters/pending | List pending email dead letters |
| GET | /api/email/dead-letters/summary | Get email dead letter summary |
| DELETE | /api/email/dead-letters/{dead_letter_id} | Delete email dead letter |
| GET | /api/email/dead-letters/{dead_letter_id} | Get email dead letter by ID |
| POST | /api/email/dead-letters/{dead_letter_id}/discard | Discard email dead letter |
| POST | /api/email/dead-letters/{dead_letter_id}/resolve | Resolve email dead letter |
8 operations
sms
| Method | Path | Does |
|---|---|---|
| GET | /api/sms/dead-letters | List SMS dead letters |
| POST | /api/sms/dead-letters/cleanup | Clean up old dead letters |
| GET | /api/sms/dead-letters/pending | List pending dead letters |
| GET | /api/sms/dead-letters/summary | Get dead letter summary |
| DELETE | /api/sms/dead-letters/{dead_letter_id} | Delete dead letter |
| GET | /api/sms/dead-letters/{dead_letter_id} | Get dead letter by ID |
| POST | /api/sms/dead-letters/{dead_letter_id}/discard | Discard dead letter |
| POST | /api/sms/dead-letters/{dead_letter_id}/resolve | Resolve dead letter |
8 operations
workflows
| Method | Path | Does |
|---|---|---|
| GET | /api/workflows | List all workflow templates |
| POST | /api/workflows | Create workflow template |
| DELETE | /api/workflows/{template_id} | Delete workflow template |
| GET | /api/workflows/{template_id} | Get workflow template by ID |
| PATCH | /api/workflows/{template_id} | Update workflow template |
| POST | /api/workflows/{template_id}/clone | Clone workflow template |
| GET | /api/workflows/{template_id}/validate | Validate workflow template graph |
7 operations
forge
| Method | Path | Does |
|---|---|---|
| POST | /api/forge/journeys | Start a journey on the Forge engine |
| POST | /api/forge/journeys/deliver | Deliver an external event (payload → wait routing) |
| GET | /api/forge/journeys/{journey_id} | Journey status |
3 operations
guides
| Method | Path | Does |
|---|---|---|
| GET | /api/guides | List all user guides |
| GET | /api/guides/{slug} | Get guide by slug |
2 operations
health
| Method | Path | Does |
|---|---|---|
| GET | /health | Basic health check |
| GET | /health/detailed | Detailed health check |
2 operations
root
| Method | Path | Does |
|---|---|---|
| GET | / | Service info |
1 operation
prime
| Method | Path | Does |
|---|---|---|
| GET | /prime | Prime application caches |
1 operation
status
| Method | Path | Does |
|---|---|---|
| GET | /status | Service status overview |
1 operation
All the partsLines of businessThe platform's own id for this service is cbworkflow.
forge-catalog.json, generated Oct 30, 2026