MCP is live.Set upAsk the community
OmniDimension
Workflows

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.

POST/workflows
Query parameters
user_idinteger

Reseller 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.

Body
2 fields
·

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.

Nodes*
No items yet.
Edges*
No items yet.
curl -X POST 'https://backend.omnidim.io/api/v1/workflows' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{}'
Example response
synthetic
{
  "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"
      }
    ]
  }
}

Authorization

BearerAuth
headerAuthorizationBearer <token>

Bearer token authentication. Obtain your API key from the OmniDimension dashboard.

Query Parameters

user_id?integer

Reseller 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.

Request Body

application/json
name*string

A 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/json

Response Body

The workflow was created.

application/json
workflow?
issues?

What validation found. Errors block publish. Warnings do not.