Create a workflow
Create a workflow with a draft. Without `graph`, the draft holds one `trigger` node, ready for `editWorkflow` ops. Pass `graph` only to start from a complete graph. The response carries the `revision` you need to edit.
Workflow builder. Included from the Jump Starter plan. See plans.
user_idintegerReseller keys only: the id of one of your direct client users. The call then acts as that client, on that client's agents, numbers, campaigns and balance. Calls, sessions and bulk campaigns spend that client's balance and concurrency. Omit it to act on your own account. An empty value, 0, false or your own user id also means your own account. Any other value that is not a positive integer id is refused with 400 invalid_request. A key that is not a reseller's gets 403 when it names someone else. A user who is not your direct client gets 404.
A non-empty name.
A complete graph to start a workflow from, in the same shape getWorkflow returns under draft. A workflow you read can be sent back as a new one. It is built with the same checks as editWorkflow ops. Most callers skip it and build with editWorkflow instead.
curl -X POST 'https://backend.omnidim.io/api/v1/workflows' \ -H 'Authorization: Bearer YOUR_API_KEY' \ -H 'Content-Type: application/json' \ -d '{}'
{ "workflow": { "id": 0, "name": "string", "status": "draft", "published_version_id": 0, "webhook_url": "string", "draft": { "version_id": 0, "revision": "string", "nodes": [ { "id": "string", "type": "string", "label": "string", "position": { "x": 0, "y": 0 }, "config": "string" } ], "edges": [ { "from": "string", "to": "string", "handle": "string" } ] } }, "issues": { "errors": [ { "code": "string", "message": "string", "node": "string", "field": "string", "hint": "string" } ], "warnings": [ { "code": "string", "message": "string", "node": "string", "field": "string", "hint": "string" } ] } }
BearerAuthAuthorizationBearer <token>Bearer token authentication. Obtain your API key from the OmniDimension dashboard.
user_id?integerReseller keys only: the id of one of your direct client users. The
call then acts as that client, on that client's agents, numbers,
campaigns and balance. Calls, sessions and bulk campaigns spend that
client's balance and concurrency. Omit it to act on your own account.
An empty value, 0, false or your own user id also means your own
account. Any other value that is not a positive integer id is
refused with 400 invalid_request. A key that is not a reseller's
gets 403 when it names someone else. A user who is not your
direct client gets 404.
application/jsonname*stringA non-empty name.
graph?A complete graph to start a workflow from, in the same shape getWorkflow
returns under draft. A workflow you read can be sent back as a new one.
It is built with the same checks as editWorkflow ops. Most callers skip it
and build with editWorkflow instead.
Response body
application/jsonThe workflow was created.
application/jsonworkflow?issues?What validation found. Errors block publish. Warnings do not.
List workflows
Your workflows, oldest first, one cursor page at a time. Use it to find a workflow id. Pass back `next_cursor` until it is `null`.
Get a workflow
One workflow with its draft, status and `revision`. Call it before every edit to get the current `revision`. Use `view=structure` to see nodes and edges without config on a large workflow. Secrets read back as `********`.
