> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chamelio.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# flows.tasks.step_change

> Fired when a workflow task advances or moves to a different step.

## Event

```
flows.tasks.step_change
```

This event fires each time a task transitions from one step to another — for example, when an approver completes their step and the task moves to the next assignee.

## Payload Example

```json theme={null}
{
  "event": "flows.tasks.step_change",
  "event_id": "evt_01HXYZ8899001122",
  "organization_id": "org_abc123",
  "timestamp": "2025-06-06T10:30:00Z",
  "data": {
    "task_id": "task_def456",
    "workflow_id": "wf_contract_review",
    "workflow_name": "Contract Review",
    "previous_step": {
      "step_id": "step_1",
      "step_name": "Initial Review",
      "completed_by": "reviewer@example.com",
      "completed_at": "2025-06-06T10:29:55Z",
      "outcome": "approved"
    },
    "current_step": {
      "step_id": "step_2",
      "step_name": "Legal Approval",
      "assignee": "legal@example.com"
    }
  }
}
```

## Payload Fields

### Envelope

| Field             | Type   | Description                                     |
| ----------------- | ------ | ----------------------------------------------- |
| `event`           | string | Always `flows.tasks.step_change`                |
| `event_id`        | string | Unique delivery ID — use to deduplicate retries |
| `organization_id` | string | ID of the organization                          |
| `timestamp`       | string | ISO 8601 UTC timestamp of the event             |
| `data`            | object | Event-specific payload (see below)              |

### Data Object

| Field           | Type   | Description                                 |
| --------------- | ------ | ------------------------------------------- |
| `task_id`       | string | Unique identifier of the task               |
| `workflow_id`   | string | ID of the parent workflow                   |
| `workflow_name` | string | Human-readable workflow name                |
| `previous_step` | object | Details of the step that was just completed |
| `current_step`  | object | Details of the step the task moved into     |

### Previous Step Object

| Field          | Type   | Description                                              |
| -------------- | ------ | -------------------------------------------------------- |
| `step_id`      | string | Unique identifier of the completed step                  |
| `step_name`    | string | Human-readable step name                                 |
| `completed_by` | string | Email of the user who completed the step                 |
| `completed_at` | string | ISO 8601 UTC timestamp of completion                     |
| `outcome`      | string | Step outcome (e.g., `approved`, `rejected`, `submitted`) |

### Current Step Object

| Field       | Type   | Description                             |
| ----------- | ------ | --------------------------------------- |
| `step_id`   | string | Unique identifier of the new step       |
| `step_name` | string | Human-readable step name                |
| `assignee`  | string | Email of the user assigned to this step |
