These 37 tools call the same endpoints as the Automation Platform section of the API Reference. Each tool runs with the permissions of the Whippy user who authorized the connection and the OAuth scopes they granted.
The Behavior column comes from the MCP tool annotations Whippy publishes. Treat these labels as hints, not guarantees: they may omit external effects (for example, a Write tool can send a message to a recipient), and clients are not required to ask for confirmation before running a tool.
| Tool | Behavior | Endpoint | What it does |
|---|
add_contacts_to_sequence | Destructive | POST /v1/sequences/{id}/contacts | Enrolls existing contacts into a sequence from a Whippy Query filter. Does not create contacts. |
list_sequence_contacts | Read-only | GET /v1/sequences/{id}/contacts | Lists contacts enrolled in a sequence, filterable by status/step. Requires a sequence ID. For one contact across sequences, use list_contact_sequences. |
list_sequences | Read-only | GET /v1/sequences | Lists multi-step sequence (drip) definitions for the organization. |
remove_contacts_from_all_sequences | Destructive | POST /v1/sequences/contacts/remove | Removes the given contacts from every sequence they are enrolled in. |
remove_sequence_contacts | Destructive | POST /v1/sequences/{id}/contacts/remove | Removes specific contacts from one sequence. For removing from every sequence, use remove_contacts_from_all_sequences. |
show_sequence | Read-only | GET /v1/sequences/{id} | Returns one sequence by ID (steps and settings). Resolve the ID with list_sequences first. |
show_sequence_step_contact | Read-only | GET /v1/sequences/{sequence_id}/step_contacts/{id} | Returns one contact's state on a specific sequence step. |
| Tool | Behavior | Endpoint | What it does |
|---|
list_workflow_step_types | Read-only | GET /v1/workflow-step-types | List selectable workflow step types (summary by default with input_field_names and has_dynamic_fields). Use detail=full with id or ids (comma-separated, max 10) for schemas. Prefer one ids batch over repeated full lookups. Requires workflows:read. |
| Tool | Behavior | Endpoint | What it does |
|---|
create_workflow_step | Write | POST /v1/workflows/{id}/steps | Create one draft workflow step without a full-graph sync. First call list_workflow_step_types (summary) for a step_template, then detail=full&id=... for schemas if needed. Copy step_template.data: keep identity fields such as subtype, app_id, app_version_id, and credential_id at the top level of data, and put operation fields inside data.operation.perform (create that operation map when the template omits it). For example, a schedule uses data.operation.perform.cron and data.operation.perform.timezone. |
create_workflow_steps | Write | POST /v1/workflows/{id}/steps/batch | Append-only batch create of draft steps in one call. Prefer for building a full graph: pass steps[] with previous_step_alias/parent_step_alias (resolved in order). Never deletes existing steps. Optional include=steps returns the full draft list. Requires workflows:update. |
delete_workflow_step | Destructive (idempotent) | DELETE /v1/workflows/{id}/steps/{step_id} | Delete one draft workflow step and relink successors. Delete nested children first. Requires workflows:update. Returns 409 on stale draft concurrency. |
list_workflow_steps | Read-only | GET /v1/workflows/{id}/steps | Lists steps on the workflow draft (or specified version). Prefer this to see aliases/IDs before update_workflow_step or test_workflow_step. |
test_workflow_step | Destructive | POST /v1/workflows/{id}/steps/{step_id}/test | Runs one draft workflow step with sample input and returns status, output, errors, and console logs. |
update_workflow_step | Destructive | PATCH /v1/workflows/{id}/steps/{step_id} | Partially updates one step on the workflow draft (input mapping, credential, action config via data, plus optional name, metadata, and samples). Deep-merges data and metadata into the existing step. Keep template identity fields such as subtype, app_id, app_version_id, and credential_id at the top level of data; put operation fields inside data.operation.perform. |
| Tool | Behavior | Endpoint | What it does |
|---|
batch_retry_workflow_runs | Destructive | POST /v1/workflow-runs/batch-retry | Retries multiple failed workflow runs in one request. |
list_workflow_runs | Read-only | GET /v1/workflow-runs | Lists workflow execution runs (success/failure, searchable across step I/O and errors). |
show_workflow_run | Read-only | GET /v1/workflow-runs/{id} | Returns one workflow run by ID including per-step execution details. |
| Tool | Behavior | Endpoint | What it does |
|---|
create_workflow | Write | POST /v1/workflows | Creates a new workflow in draft state. Next: add steps with create_workflow_steps, test_workflow_step, then publish_workflow. |
list_workflow_versions | Read-only | GET /v1/workflows/{id}/versions | Lists published/historical versions of a workflow. |
list_workflows | Read-only | GET /v1/workflows | Lists workflows (automations) for the organization with search, state, and pagination. |
publish_workflow | Destructive | POST /v1/workflows/{id}/publish | Publishes the workflow draft after steps are configured and tested. Full config completeness is validated here. |
show_workflow | Read-only | GET /v1/workflows/{id} | Returns one workflow by ID including draft and current version step summaries. Resolve the ID with list_workflows. |
show_workflow_version | Read-only | GET /v1/workflows/{id}/versions/{version_id} | Returns one workflow version by ID including its step graph. |
unpublish_workflow | Destructive | POST /v1/workflows/{id}/unpublish | Unpublishes a live workflow so it stops running new events. |
update_workflow | Destructive (idempotent) | PUT /v1/workflows/{id} | Updates workflow-level metadata (name, etc.). Step graph changes use create/update/delete_workflow_step. |