---
title: "Resume waiting workflow execution"
method: POST
path: "/workflow_executions/{execution_id}/resume"
tags: ["Workflows"]
---

# Resume waiting workflow execution

`POST /workflow_executions/{execution_id}/resume`

Resume a workflow execution that is in 'waiting' status. Workflows enter waiting status when they reach a wait_for_response step or are explicitly paused.

Send a message with:
- `kind`: Message type, defaults to "payload" if omitted
- `data`: The actual payload - can be a string for simple text responses (e.g., "yes", "no") or an object for structured data (e.g., button clicks, form submissions)

Optionally include variables to update the execution context:
- `variables`: Key-value pairs to merge into the execution context. These will be available in subsequent workflow steps as `{{var_name}}`. Existing variables with the same key will be overwritten.

After resuming, the workflow will continue processing from the waiting step with the provided message data and updated variables.

**Response**: Returns minimal execution data (id, status, tracking_id, timestamps, workflow, current_step). Does not include execution_context or events. Use GET /workflow_executions/{id} to retrieve full execution details.

## Request body

- WorkflowExecutionResumeRequest — Request to resume a workflow execution that is in 'waiting' status. Executions wait when they reach a wait_for_response step or when explicitly paused. The message data can be a simple string for text responses or a structured object for complex interactions. You can optionally include variables to update the execution context with new or modified variables that will be available to subsequent workflow steps.
  - `message` object, required
    - `kind` string — Message kind. Defaults to "payload" if omitted.
    - `data` union, required — Message data. Can be any JSON value - string, object, or array. This is passed to the workflow step that is waiting for input.
      - string
      - object
  - `variables` object — Optional variables to merge into the execution context. These variables will be added to the `vars` section of the execution context, making them available throughout the workflow. New variables are merged with existing ones - duplicate keys will be overwritten with new values.

## Response `200`

Execution resumed successfully

- WorkflowExecutionMinimalResponse — Minimal workflow execution response (without execution_context and events)
  - `data` WorkflowExecution, required — Base workflow execution schema
    - `id` string, uuid, required — Unique execution identifier
    - `status` 'running' | 'waiting' | 'ended' | 'failed' | 'handoff', required — Execution status: - `running`: Currently executing workflow steps - `waiting`: Paused, awaiting user input or timeout - `ended`: Successfully completed - `failed`: Terminated due to error - `handoff`: Transferred to human agent
    - `started_at` string, date-time, required — Execution start timestamp
    - `ended_at` string, date-time, nullable — Execution completion timestamp, null if still active
    - `last_event_at` string, date-time, required — Timestamp of most recent workflow event or activity
    - `tracking_id` string, uuid, nullable — Optional external tracking identifier for correlating with external systems
    - `whatsapp_conversation_id` string, uuid, nullable — Associated WhatsApp conversation identifier, links execution to its conversation
    - `workflow` WorkflowMinimal — Compact workflow reference used in execution objects
      - `id` string, uuid, required — Workflow identifier
      - `name` string, required — Workflow name
      - `status` string, required — Workflow status
    - `current_step` WorkflowStepReference — Reference to a workflow step (used in execution current_step tracking)
      - `id` string, uuid, required — Internal ID of the workflow step
      - `identifier` string, required — Step identifier within the workflow (e.g., 'start', 'step1', 'agent_greeting')
      - `stepable_type` string, nullable — Ruby class name of the step type (e.g., 'FlowAgentStep', 'FlowActionStep', 'FlowWaitStep', 'FlowDecideStep')
      - `position` object, nullable — Canvas position for visual editor
        - `x` number
        - `y` number
    - `error_details` object, nullable — Error information when status is 'failed' (error message, stack trace, step identifier)

## Other responses

- `401` — Missing or invalid API key
- `404` — Resource not found
- `422` — Request validation failed

---

[API](https://skmtc.net/kapso/apis/kapso-platform-api.md) · [All operations](https://skmtc.net/kapso/apis/kapso-platform-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/kapso/kapso-platform-api/revisions/18ff5548a33f/schema)
