# MCP tool reference

1 callable tools.

Use tools/call at https://mcp.schedulerzero.com/mcp with the exact tool name and arguments below. The /tools/ paths in this view are documentation identifiers, not HTTP endpoints. Request execution is disabled for this reference.

Inputs are shown for personal API keys (bound) and for OAuth/delegated agents. Output schemas describe MCP structuredContent: native objects pass through; arrays, scalars and null use a data wrapper. Text content retains the native JSON result.

[Connect a client](/mcp/connect) · [Authentication and authorization](/authentication) · [Generated auth guide](/auth.md) · [Download tool catalog](/mcp-catalog.json) · [Agent documentation](/llms.txt)

## enroll_leads_in_workflow

Start a published Lead-enrolled workflow for up to 100 existing leads.

Use to put specific leads through an automation built on the Lead enrolled trigger. The server derives the enrollment identity from the request so retries do not enroll a lead twice.

Only an active, published workflow with a Lead enrolled trigger accepts leads; the caller must also hold every permission the workflow's blocks use.

Scopes: workflow:publish, lead:read, dialer:read

Risk: costly; confirmation: none; idempotency: required.

### Input schema (personal API key)

```json
{
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
      "format": "uuid"
    },
    "workflowId": {
      "type": "string",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
      "format": "uuid"
    },
    "leadIds": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
        "format": "uuid"
      },
      "minItems": 1,
      "maxItems": 100
    }
  },
  "required": [
    "workspaceId",
    "workflowId",
    "leadIds"
  ],
  "patternProperties": {
    "^(?!(?:workspaceId|workflowId|leadIds)$)[\\s\\S]*$": false
  },
  "additionalProperties": true,
  "propertyNames": {
    "type": "string",
    "enum": [
      "workspaceId",
      "workflowId",
      "leadIds"
    ]
  }
}
```

### Input schema (OAuth / delegated agent)

```json
{
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
      "format": "uuid"
    },
    "workflowId": {
      "type": "string",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
      "format": "uuid"
    },
    "leadIds": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
        "format": "uuid"
      },
      "minItems": 1,
      "maxItems": 100
    }
  },
  "required": [
    "workspaceId",
    "workflowId",
    "leadIds"
  ],
  "patternProperties": {
    "^(?!(?:workspaceId|workflowId|leadIds)$)[\\s\\S]*$": false
  },
  "additionalProperties": true,
  "propertyNames": {
    "type": "string",
    "enum": [
      "workspaceId",
      "workflowId",
      "leadIds"
    ]
  }
}
```

### Output schema (structuredContent)

```json
{
  "type": "object",
  "properties": {
    "workflowId": {
      "type": "string",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
      "format": "uuid"
    },
    "enrolled": {
      "type": "integer",
      "minimum": 1
    },
    "operation": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$",
          "format": "uuid"
        },
        "statusUrl": {
          "anyOf": [
            {
              "$ref": "#/$defs/HttpUrl"
            },
            {
              "$ref": "#/$defs/HttpResourcePath"
            }
          ]
        },
        "state": {
          "type": "string",
          "enum": [
            "queued",
            "running",
            "waiting_for_user",
            "succeeded",
            "partially_succeeded",
            "failed",
            "canceled",
            "canceling"
          ]
        },
        "acceptedAt": {
          "$ref": "#/$defs/UtcDateTimeEncoded"
        },
        "progress": {
          "type": "object",
          "properties": {
            "completed": {
              "type": "integer",
              "minimum": 0
            },
            "total": {
              "type": "integer",
              "minimum": 0
            },
            "message": {
              "$ref": "#/$defs/NonEmptyString"
            }
          },
          "required": [
            "completed"
          ],
          "patternProperties": {
            "^(?!(?:completed|total|message)$)[\\s\\S]*$": false
          },
          "additionalProperties": true,
          "propertyNames": {
            "type": "string",
            "enum": [
              "completed",
              "total",
              "message"
            ]
          }
        },
        "canCancel": {
          "type": "boolean"
        }
      },
      "required": [
        "id",
        "statusUrl",
        "state",
        "acceptedAt",
        "canCancel"
      ],
      "patternProperties": {
        "^(?!(?:id|statusUrl|state|acceptedAt|progress|canCancel)$)[\\s\\S]*$": false
      },
      "additionalProperties": true,
      "propertyNames": {
        "type": "string",
        "enum": [
          "id",
          "statusUrl",
          "state",
          "acceptedAt",
          "progress",
          "canCancel"
        ]
      }
    }
  },
  "required": [
    "workflowId",
    "enrolled",
    "operation"
  ],
  "patternProperties": {
    "^(?!(?:workflowId|enrolled|operation)$)[\\s\\S]*$": false
  },
  "additionalProperties": true,
  "propertyNames": {
    "type": "string",
    "enum": [
      "workflowId",
      "enrolled",
      "operation"
    ]
  },
  "$defs": {
    "HttpUrl": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2048,
      "pattern": "^https?:\\/\\/[^\\s/$.?#][^\\s]*$"
    },
    "HttpResourcePath": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2048,
      "pattern": "^\\/[A-Za-z0-9._~!$&'()*+,;=:@/%-]*$"
    },
    "UtcDateTimeEncoded": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
    },
    "NonEmptyString": {
      "type": "string",
      "minLength": 1,
      "maxLength": 4096
    }
  }
}
```

### Underlying API operations

- `workflows.enrollLeads`: `POST /v1/workspaces/:workspaceId/workflows/:workflowId/enrollments`

