---
title: "routine.run_completed — Routine run finished"
locale: en
url: https://tlg.builera.app/en/docs/reference/events/routine.run_completed
verified: 2026-10-24
app_version: "2.0"
generated: true
---

# routine.run_completed — Routine run finished

One run of a routine finished.

One run of a routine finished.

Since web 1.0.0, worker —.

| Name | Value |
| --- | --- |
| Code | `routine.run_completed` |
| Group | System |
| Status | Subscribable |
| Scope needed to receive it | `accounts.read` |
| Tied to one account | No |
| Only the connection that caused it receives it | No |
| Filters that apply | — |
| Fields dropped in `thin` content mode | `name` |
| Fields written by outside people (untrusted) | — |

## JSON Schema

[https://tlg.builera.app/schemas/events/routine.run_completed/2.json](https://tlg.builera.app/schemas/events/routine.run_completed/2.json)

## Sample payload (exactly what `webhooks.test` sends)

```json
{
  "specversion": "1.0",
  "id": "evt_01JDOCSSAMPLE",
  "source": "https://tlg.builera.app/ws/07c2e5e1-c42f-4212-851b-c55b6dd7989d",
  "type": "routine.run_completed",
  "time": "2026-10-21T13:45:00.123Z",
  "datacontenttype": "application/json",
  "dataschema": "https://tlg.builera.app/schemas/events/routine.run_completed/2.json",
  "platform": "telegram",
  "workspaceid": "07c2e5e1-c42f-4212-851b-c55b6dd7989d",
  "accountid": null,
  "seq": "000000000000000",
  "schemaversion": "2",
  "correlationid": null,
  "causationid": null,
  "test": true,
  "replay": false,
  "data": {
    "routine_id": "0d1e2f3a-4b5c-4d6e-9f7a-8b9c0d1e2f3a",
    "name": "Chào buổi sáng nhóm VIP",
    "status": "done",
    "queued": 12,
    "skipped": 0,
    "account_id": null
  }
}
```
