Workflow automations
Workflow automations endpoints of the Zanfia Workspace API, with schemas and code samples.
Read your workflow automations, inspect run history, pause/resume them, retry a failed run, and fire a test run. Workflows are composed in the dashboard builder — the API deliberately exposes no graph editing while the step catalog is still evolving. Activating a never-published draft returns 400. Retry and test-run answer 202 (the run executes asynchronously) and a test run executes the real graph — actions genuinely fire. All routes require a Authorization: Bearer header — see Authentication.
List workflow automations
/automationsAuthorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Response Body
application/json
application/json
curl -X GET "https://example.com/automations"{ "items": [ { "id": "string", "name": "string", "description": "string", "status": "active", "triggers": [ "product.ProductPurchased" ], "productIds": [ "string" ], "published": true, "publishedAt": "string", "runsThisMonth": 0, "lastRunAt": "string", "lastRunStatus": "running", "createdAt": "string", "updatedAt": "string" } ]}{ "error": "string", "message": "string"}Automation detail
/automations/{automationId}Authorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Workflow automation id
Response Body
application/json
application/json
curl -X GET "https://example.com/automations/string"{ "id": "string", "name": "string", "description": "string", "status": "active", "triggers": [ "product.ProductPurchased" ], "productIds": [ "string" ], "published": true, "publishedAt": "string", "runsThisMonth": 0, "lastRunAt": "string", "lastRunStatus": "running", "createdAt": "string", "updatedAt": "string", "nodeCounts": { "triggers": 0, "actions": 0, "conditions": 0, "delays": 0 }}{ "error": "string", "message": "string"}Run history
/automations/{automationId}/runsAuthorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Workflow automation id
Response Body
application/json
application/json
curl -X GET "https://example.com/automations/string/runs"{ "items": [ { "id": "string", "status": "running", "trigger": "product.ProductPurchased", "startedAt": "string", "completedAt": "string", "steps": { "total": 0, "succeeded": 0, "failed": 0, "skipped": 0 }, "error": "string" } ]}{ "error": "string", "message": "string"}Pause or resume an automation
/automations/{automationId}/statusAuthorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Workflow automation id
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://example.com/automations/string/status" \ -H "Content-Type: application/json" \ -d '{ "status": "active" }'{ "id": "string", "status": "active"}{ "error": "string", "message": "string"}Retry a failed run
/automations/{automationId}/runs/{runId}/retryAuthorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Workflow automation id
Response Body
application/json
application/json
curl -X POST "https://example.com/automations/string/runs/string/retry"{ "runId": "string"}{ "error": "string", "message": "string"}Fire a test run
/automations/{automationId}/test-runAuthorization
bearerAuth API key from Dashboard → Integrations → API, MCP and CLI.
In: header
Path Parameters
Workflow automation id
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Fire the published graph once with a synthetic trigger context. ⚠️ The test run executes the REAL graph — actions genuinely fire (emails, webhooks, integration commands), so pass a client email you control. The run is flagged as a test (excluded from stats, kept 7 days).
Response Body
application/json
application/json
curl -X POST "https://example.com/automations/string/test-run" \ -H "Content-Type: application/json" \ -d '{ "context": {} }'{ "runId": "string"}{ "error": "string", "message": "string"}Was this article helpful?

