Workflows
Workflows

create_workflow

Create a new workflow template. Workflows start as status="draft"; activate them via update_workflow once the user confirms.

Input Schema

{
  "type": "object",
  "required": [
    "name",
    "steps"
  ],
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 200,
      "minLength": 1,
      "description": "Human-readable workflow name."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "steps": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "name",
          "description"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "agent_hint": {
            "type": "string"
          },
          "description": {
            "type": "string"
          }
        },
        "additionalProperties": true
      },
      "minItems": 1,
      "description": "Ordered step objects. The runner executes these sequentially."
    },
    "inputs": {
      "type": "object",
      "description": "Declared input schema. Keys are input names; values describe type/label/required (free-form).",
      "additionalProperties": true
    },
    "description": {
      "type": "string",
      "description": "One- or two-sentence description of what this workflow accomplishes."
    },
    "allowed_tools": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Narrow allowlist of MCP tool names the runner may call."
    },
    "schedule_config": {
      "type": "object",
      "description": "Optional. Creates an accompanying workflow_trigger with is_enabled=false. Shape: frequency (daily/weekly/hourly), interval_hours, timezone (UTC).",
      "additionalProperties": true
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "required": [
    "id",
    "name",
    "status",
    "link_url"
  ],
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "description": "Workflow UUID. Use as workflow_id in other workflow tools."
    },
    "name": {
      "type": "string"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "steps": {
      "type": "array"
    },
    "inputs": {
      "type": "object"
    },
    "status": {
      "enum": [
        "draft"
      ],
      "type": "string"
    },
    "team_id": {
      "type": "string",
      "format": "uuid"
    },
    "link_url": {
      "type": "string",
      "format": "uri"
    },
    "created_at": {
      "type": "string"
    },
    "updated_at": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "allowed_tools": {
      "type": "array"
    },
    "created_by_user_id": {
      "type": "string"
    }
  }
}

Instructions

Create a new workflow template for your active team. Workflows start as draft — activate them with update_workflow once the user confirms. Check list_workflows with a search filter for duplicate names first.

Scheduling note: include schedule_config ONLY if the user explicitly wants the workflow scheduled. Otherwise omit it and the workflow runs on demand via run_workflow.

Parameters:

  • name (string, required): Human-readable workflow name. Confirm with the user before creating
  • description (string, optional): One or two sentences; becomes part of the runner's system prompt
  • steps (array, required): Ordered list of steps. Each should be specific enough that a fresh agent can execute it without follow-up questions
  • inputs (object, optional): Declares what the workflow needs (e.g. topic, date_range); resolved from trigger bindings on scheduled runs
  • allowed_tools (array, optional): Tool allowlist for the runner. Prefer tight allowlists, especially for scheduled runs
  • tags (string[], optional): Optional tags
  • schedule_config (object, optional): Scheduling config. Shape: { "frequency": "daily"|"weekly"|"hourly", "interval_hours": N, "timezone": "UTC" }. Omit unless scheduling is requested

Output: The created workflow object — id, team_id, created_by_user_id, name, description, status (draft), inputs, steps, allowed_tools, tags, created_at, updated_at, link_url. Use id as workflow_id in the other workflow tools.

Scroll to Top