# Automatizace API

> Sestavujte workflow ze spouštěčů a kroků, spouštějte je a procházejte jejich spuštění.

Základní URL: `https://api.emailit.com/v2`. Autentizujte se hlavičkou `Authorization: Bearer <API key>`.

## Vytvoření automatizace — POST /automations

> Vytvoří automatizaci ve stavu konceptu z grafu kroků se spouštěči a akcemi, například uvítací e-mail odeslaný, když se kontakt přidá do seznamu kontaktů.

# Vytvoření automatizace

Vytvoří automatizaci ve stavu `draft` z grafu kroků a propojení. Vyžaduje API klíč s oprávněním `full`. Automatizace jsou v betaverzi.

Dokud automatizaci [nezapnete](/cs/docs/api-reference/automations/start/), nic nedělá. Každé spuštění stojí při startu 3 kredity a každý e-mail odeslaný akcí `send_email` nebo `forward_email` stojí 1 kredit navíc. V neověřeném workspace mohou tyto akce odesílat jen na e-mailové adresy účtů členů workspace.

`POST /automations`

## Parametry v těle požadavku

- `context` (string, povinné): Čeho se každé spuštění týká: `contact`, `email` nebo `event`. Kontext určuje, které spouštěče a akce můžete použít, a později ho nelze změnit. Viz [Kontexty](#contexts).

- `name` (string, povinné): Název automatizace, nejvýše 191 znaků.

- `description` (string | null): Volitelný popis.

- `settings` (object): Pravidla spouštění. Viz [Nastavení](#settings).

- `steps` (object[], povinné): Kroky se spouštěči a akcemi, alespoň jeden spouštěč. Viz [Kroky](#steps).

- `connections` (object[], povinné): Hrany mezi kroky. Pro graf, který má jen spouštěč, předejte `[]`. Viz [Propojení](#connections).

### Nastavení

- `on_step_failure` (string): `stop` při selhání kroku převede spuštění do stavu `failed`. `skip` neúspěšný krok zaznamená a nechá zbytek spuštění doběhnout.

- `allow_reentry` (boolean): `false` přeskočí aktivaci spouštěče, pokud má stejný kontakt (nebo e-mail) v této automatizaci už probíhající spuštění.

- `max_concurrent_runs` (integer): Nejvyšší počet spuštění, která mohou být současně ve stavu `running`. `0` znamená bez limitu.

- `cooldown_seconds` (integer): Počet sekund, po které se další aktivace spouštěče přeskočí, když stejný kontakt (nebo e-mail) zahájil spuštění v této automatizaci.

### Kroky

- `key` (string, povinné): Váš identifikátor kroku, v rámci automatizace jedinečný, například `welcome_email`. Propojení, [statistiky kroků](/cs/docs/api-reference/automations/step-stats/) a úpravy odkazují na kroky klíčem.

- `type` (string, povinné): `trigger`, nebo `action`.

- `trigger` (string): Název spouštěče, povinný, pokud má `type` hodnotu `trigger`. Viz [Spouštěče](#triggers).

- `action` (string): Název akce, povinný, pokud má `type` hodnotu `action`. Viz [Akce](#actions).

- `config` (object): Nastavení spouštěče nebo akce.

### Propojení

- `from` (string, povinné): Klíč kroku, ve kterém hrana začíná.

- `to` (string, povinné): Klíč následujícího kroku.

- `branch` (string): Který výsledek kroku `from` pokračuje po této hraně. Kroky `condition` používají `yes` a `no`, kroky `experiment` klíče variant. Všechny ostatní kroky používají `default`.

## Kontexty

| Kontext | Čeho se spuštění týká | Spouštěče | Pravidla |
| --- | --- | --- | --- |
| `contact` | Jednoho kontaktu. `send_email` odesílá tomuto kontaktu. | `contact.*`, `system.*` | Jeden nebo více spouštěčů. Všechny musí vést do stejné první akce. |
| `email` | Jednoho e-mailu (odeslaného, nebo přijatého). | `email.*`, `system.*` | Jeden nebo více spouštěčů. Všechny musí vést do stejné první akce. |
| `event` | Jen obsahu spouštěče. | `event.*`, `system.*` | Právě jeden spouštěč. |

Každá akce musí být dosažitelná ze spouštěče. Spuštění začne v akci propojené se spouštěčem, který se aktivoval, a pokračuje po propojeních:

- `condition` pokračuje jen po hraně, jejíž `branch` je podle výsledku `yes`, nebo `no`.
- `experiment` pokračuje po hranách vybrané varianty. Když tato cesta skončí, spuštění pokračuje po hranách `default` kroku experimentu.
- `wait` odloží další krok.
- Všechny ostatní akce pokračují po svých hranách `default`. Krok s několika odchozími hranami pokračuje po všech.

Spuštění přejde do stavu `completed`, když nezbývají žádné kroky, do stavu `failed`, když krok selže (při `on_step_failure: "stop"`), a do stavu `canceled`, když [automatizaci zastavíte](/cs/docs/api-reference/automations/stop/).

## Spouštěče

| Spouštěč | Kontext | Kdy se aktivuje |
| --- | --- | --- |
| `contact.added_to_audience` | contact | Kontakt se přihlásí k odběru seznamu kontaktů, včetně opětovného přihlášení. |
| `contact.removed_from_audience` | contact | Odběratel se ze seznamu kontaktů smaže. |
| `contact.updated` | contact | Kontakt se upraví. |
| `contact.loaded_email` | contact | Příjemce, který je kontaktem ve workspace, otevře e-mail. |
| `contact.clicked_in_email` | contact | Příjemce, který je kontaktem ve workspace, klikne na měřený odkaz. |
| `contact.date_anniversary` | contact | Denně v 00:00 UTC pro kontakty, jejichž datové vlastní pole (`YYYY-MM-DD`) má dnešní měsíc a den. |
| `contact.on_date` | contact | Denně v 00:00 UTC pro kontakty, jejichž datové vlastní pole se rovná dnešnímu datu. |
| `contact.visits_url`, `contact.on_purchase`, `contact.on_event` | contact | Přijímají se, ale Emailit je zatím neaktivuje. |
| `email.received` | email | Dorazí příchozí e-mail. |
| `email.delivered`, `email.bounced`, `email.complained`, `email.loaded`, `email.clicked`, `email.failed`, `email.suppressed`, `email.canceled` | email | Nastane stejnojmenná událost e-mailu. |
| `event.<name>` | event | Jakýkoli název, který začíná na `event.`. Emailit zatím události `event.*` nevyvolává; automatizace s kontextem `event` spouštějte přes `system.manual`. |
| `system.manual` | všechny | Zavoláte [Ruční spuštění](/cs/docs/api-reference/automations/trigger/). |
| `system.schedule` | všechny | Přijímá se, ale Emailit plánované spouštěče zatím neaktivuje. |

Pole `config` spouštěče:

- `audience_id` (string): Pro `contact.added_to_audience` a `contact.removed_from_audience`: spouštěč se aktivuje jen pro tento seznam kontaktů (`aud_…`).

- `date_field` (string): Pro `contact.date_anniversary` a `contact.on_date`: klíč [vlastního pole](/cs/docs/contacts/custom-fields/), které obsahuje datum, například `birthday`.

- `filter` (object): Spouštěč se aktivuje, jen když událost odpovídá: `{ "match": "all", "rules": [{ "field": "subject", "operator": "contains", "value": "Invoice" }] }`. `match` je `all` (výchozí), nebo `any`. `field` je cesta s tečkami do pole `object` události, například `to` nebo `email.subject`; úvodní `payload.` se ignoruje. Operátory: `equals`, `not_equals`, `contains`, `not_contains`, `starts_with`, `ends_with`, `greater_than`, `less_than`, `in`, `not_in`, `is_set`, `is_not_set`. Všechny operátory kromě `is_set` a `is_not_set` potřebují `value`; `in` a `not_in` přijímají pole.

## Akce

| Akce | Kontext | Konfigurace |
| --- | --- | --- |
| `send_email` | všechny | `type` (povinné, `template`), `template_id` (povinné: ID `tem_` nebo alias publikované šablony), `from`, `subject`, `reply_to`, `to` |
| `forward_email` | email, event | `to` (povinné), `from`, `subject`, `email_id` |
| `wait` | všechny | `seconds` (povinné, od 0 do 2 592 000, tedy 30 dní) |
| `condition` | všechny | `filter` (povinné, viz níže) |
| `experiment` | všechny | `variants` (povinné), `control` |
| `call_webhook` | všechny | `url` (povinné), `method`, `headers`, `body` |
| `run_automation` | všechny | `automation_id` (povinné) |
| `end` | všechny | Žádná |
| `add_to_audience` | contact | `audience_id` (povinné) |
| `remove_from_audience` | contact | `audience_id` (povinné) |
| `edit_contact` | contact | `fields` (povinné) |
| `add_to_suppressions` | email, event | `type`, `reason`, `email` |
| `remove_from_suppressions` | email, event | `email` |
| `create_contact` | email, event | `email`, `first_name`, `audience_id` |

- **`send_email`** odešle šablonu. Ve výchozím stavu se jako `from` použije odesílatel šablony; adresa musí být na ověřené odesílací doméně. `subject` přepíše předmět šablony. `reply_to` je adresa, nebo pole adres. V kontextu `contact` jde e-mail kontaktu daného spuštění; v kontextech `email` a `event` nastavte `to`.
- **`forward_email`** přepošle e-mail daného spuštění (nebo e-mail z `email_id`) na adresu v `to`. Výchozí hodnota `from` je původní odesílatel a výchozí hodnota `subject` je `Fwd: <original subject>`.
- **`condition`** přijímá `{ "match": "all" | "any", "rules": [...] }` se stejnými operátory jako filtry spouštěčů. Pole bez předpony se vyhodnotí vůči kontaktu (`first_name`, `custom_fields.plan`), nebo e-mailu (`rcpt_to`, `subject`) daného spuštění; pokud chcete pole určit jednoznačně, dejte před něj předponu `contact.`, `email.`, `payload.` nebo `meta.`. Krok pokračuje větví `yes`, nebo `no`.
- **`experiment`** náhodně podle váhy vybere jednu z `variants` (a `control`), každou ve tvaru `{ "key": "a", "weight": 50 }`, a pokračuje větví pojmenovanou podle vybraného klíče.
- **`call_webhook`** pošle HTTP požadavek (výchozí metoda `POST`, `Content-Type` JSON) a zaznamená třídu stavového kódu (`2xx`, `4xx`, `5xx`), případně `timeout` nebo `network_error`. Odpověď s jiným kódem než 2xx neznamená selhání kroku.
- **`run_automation`** spustí jinou běžící automatizaci s obsahem tohoto spuštění. Aktuální spuštění pokračuje.
- **`edit_contact`** přijímá `fields: [{ "key": "first_name", "value": "Ada" }]`. Klíče `email`, `first_name`, `last_name` a `unsubscribed` upraví kontakt; jakýkoli jiný klíč nastaví vlastní pole.
- **`add_to_suppressions`** zablokuje adresu daného spuštění (výchozí `type` je `recipient`, výchozí `reason` je `automation`). **`remove_from_suppressions`** blokaci odebere. V kontextu `event` předejte `email`.
- **`create_contact`** vytvoří kontakt (nebo najde existující) a volitelně ho přihlásí k odběru seznamu `audience_id`. V kontextu `email` je výchozí hodnotou `email` příjemce e-mailu.

Textové hodnoty v konfiguraci jakékoli akce mohou obsahovat proměnné, které Emailit doplní při provedení kroku: `{{contact.email}}`, `{{email.mail_from}}`, `{{payload.object.subject}}` nebo `{{meta.source_event_id}}`, například `"to": "{{email.mail_from}}"`. Šablony odeslané akcí `send_email` navíc přímo vykreslí pole kontaktu, například `{{ first_name }}`.

## Odpověď

Vrací `201 Created` s automatizací v poli `data`, včetně ID každého kroku (`aus_…`) a propojení. `status` je `draft`.

Při vytvoření se kontroluje struktura grafu: názvy spouštěčů a akcí pro daný kontext, jedinečnost klíčů, platnost propojení, dosažitelnost a to, že každá adresa `from` v akci `send_email` používá ověřenou odesílací doménu. Nekontroluje se, zda je konfigurace každé akce úplná; to dělá [Úprava automatizace](/cs/docs/api-reference/automations/update/). Chyby vracejí `400` s polem `errors`, jehož klíče jsou cesty k polím.

**Požadavek** `POST /automations`

**cURL**

```bash
curl -X POST https://api.emailit.com/v2/automations \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Welcome series",
    "context": "contact",
    "description": "Welcome new subscribers, then nudge free users a day later.",
    "settings": { "allow_reentry": false },
    "steps": [
      {
        "key": "joined",
        "type": "trigger",
        "trigger": "contact.added_to_audience",
        "config": { "audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV" }
      },
      {
        "key": "welcome_email",
        "type": "action",
        "action": "send_email",
        "config": { "type": "template", "template_id": "welcome", "from": "Acme <hello@acme.com>" }
      },
      {
        "key": "wait_1_day",
        "type": "action",
        "action": "wait",
        "config": { "seconds": 86400 }
      },
      {
        "key": "is_free_user",
        "type": "action",
        "action": "condition",
        "config": {
          "filter": {
            "match": "all",
            "rules": [{ "field": "custom_fields.plan", "operator": "is_not_set" }]
          }
        }
      },
      {
        "key": "upgrade_tips",
        "type": "action",
        "action": "send_email",
        "config": { "type": "template", "template_id": "getting-started-tips" }
      },
      { "key": "done", "type": "action", "action": "end" }
    ],
    "connections": [
      { "from": "joined", "to": "welcome_email" },
      { "from": "welcome_email", "to": "wait_1_day" },
      { "from": "wait_1_day", "to": "is_free_user" },
      { "from": "is_free_user", "to": "upgrade_tips", "branch": "yes" },
      { "from": "is_free_user", "to": "done", "branch": "no" }
    ]
  }'
```

**Node.js**

```javascript
const res = await fetch('https://api.emailit.com/v2/automations', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.EMAILIT_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    name: 'Welcome series',
    context: 'contact',
    description: 'Welcome new subscribers, then nudge free users a day later.',
    settings: { allow_reentry: false },
    steps: [
      {
        key: 'joined',
        type: 'trigger',
        trigger: 'contact.added_to_audience',
        config: { audience_id: 'aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV' },
      },
      {
        key: 'welcome_email',
        type: 'action',
        action: 'send_email',
        config: { type: 'template', template_id: 'welcome', from: 'Acme <hello@acme.com>' },
      },
      { key: 'wait_1_day', type: 'action', action: 'wait', config: { seconds: 86400 } },
      {
        key: 'is_free_user',
        type: 'action',
        action: 'condition',
        config: {
          filter: { match: 'all', rules: [{ field: 'custom_fields.plan', operator: 'is_not_set' }] },
        },
      },
      {
        key: 'upgrade_tips',
        type: 'action',
        action: 'send_email',
        config: { type: 'template', template_id: 'getting-started-tips' },
      },
      { key: 'done', type: 'action', action: 'end' },
    ],
    connections: [
      { from: 'joined', to: 'welcome_email' },
      { from: 'welcome_email', to: 'wait_1_day' },
      { from: 'wait_1_day', to: 'is_free_user' },
      { from: 'is_free_user', to: 'upgrade_tips', branch: 'yes' },
      { from: 'is_free_user', to: 'done', branch: 'no' },
    ],
  }),
});
const { data: automation } = await res.json();
```

**Python**

```python
import os, requests

r = requests.post(
    "https://api.emailit.com/v2/automations",
    headers={"Authorization": f"Bearer {os.environ['EMAILIT_API_KEY']}"},
    json={
        "name": "Welcome series",
        "context": "contact",
        "description": "Welcome new subscribers, then nudge free users a day later.",
        "settings": {"allow_reentry": False},
        "steps": [
            {
                "key": "joined",
                "type": "trigger",
                "trigger": "contact.added_to_audience",
                "config": {"audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV"},
            },
            {
                "key": "welcome_email",
                "type": "action",
                "action": "send_email",
                "config": {"type": "template", "template_id": "welcome", "from": "Acme <hello@acme.com>"},
            },
            {"key": "wait_1_day", "type": "action", "action": "wait", "config": {"seconds": 86400}},
            {
                "key": "is_free_user",
                "type": "action",
                "action": "condition",
                "config": {
                    "filter": {
                        "match": "all",
                        "rules": [{"field": "custom_fields.plan", "operator": "is_not_set"}],
                    }
                },
            },
            {
                "key": "upgrade_tips",
                "type": "action",
                "action": "send_email",
                "config": {"type": "template", "template_id": "getting-started-tips"},
            },
            {"key": "done", "type": "action", "action": "end"},
        ],
        "connections": [
            {"from": "joined", "to": "welcome_email"},
            {"from": "welcome_email", "to": "wait_1_day"},
            {"from": "wait_1_day", "to": "is_free_user"},
            {"from": "is_free_user", "to": "upgrade_tips", "branch": "yes"},
            {"from": "is_free_user", "to": "done", "branch": "no"},
        ],
    },
)
automation = r.json()["data"]
```

**PHP**

```php
$client = new GuzzleHttp\Client(['base_uri' => 'https://api.emailit.com/v2/']);

$response = $client->post('automations', [
    'headers' => ['Authorization' => 'Bearer ' . getenv('EMAILIT_API_KEY')],
    'json' => [
        'name' => 'Welcome series',
        'context' => 'contact',
        'description' => 'Welcome new subscribers, then nudge free users a day later.',
        'settings' => ['allow_reentry' => false],
        'steps' => [
            [
                'key' => 'joined',
                'type' => 'trigger',
                'trigger' => 'contact.added_to_audience',
                'config' => ['audience_id' => 'aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV'],
            ],
            [
                'key' => 'welcome_email',
                'type' => 'action',
                'action' => 'send_email',
                'config' => ['type' => 'template', 'template_id' => 'welcome', 'from' => 'Acme <hello@acme.com>'],
            ],
            ['key' => 'wait_1_day', 'type' => 'action', 'action' => 'wait', 'config' => ['seconds' => 86400]],
            [
                'key' => 'is_free_user',
                'type' => 'action',
                'action' => 'condition',
                'config' => [
                    'filter' => [
                        'match' => 'all',
                        'rules' => [['field' => 'custom_fields.plan', 'operator' => 'is_not_set']],
                    ],
                ],
            ],
            [
                'key' => 'upgrade_tips',
                'type' => 'action',
                'action' => 'send_email',
                'config' => ['type' => 'template', 'template_id' => 'getting-started-tips'],
            ],
            ['key' => 'done', 'type' => 'action', 'action' => 'end'],
        ],
        'connections' => [
            ['from' => 'joined', 'to' => 'welcome_email'],
            ['from' => 'welcome_email', 'to' => 'wait_1_day'],
            ['from' => 'wait_1_day', 'to' => 'is_free_user'],
            ['from' => 'is_free_user', 'to' => 'upgrade_tips', 'branch' => 'yes'],
            ['from' => 'is_free_user', 'to' => 'done', 'branch' => 'no'],
        ],
    ],
]);
$automation = json_decode($response->getBody(), true)['data'];
```

**201**

```json
{
  "data": {
    "id": "aut_3xqC9YD79FZZA36uTekWTBO1ghe",
    "context": "contact",
    "name": "Welcome series",
    "description": "Welcome new subscribers, then nudge free users a day later.",
    "status": "draft",
    "settings": { "allow_reentry": false },
    "last_triggered_at": null,
    "published_at": null,
    "created_at": "2026-10-01T09:41:05.318274+00:00",
    "updated_at": "2026-10-01T09:41:05.318274+00:00",
    "steps": [
      {
        "id": "aus_3ZqpuxjmL1szZ8og6uGL1mT6QEJ",
        "key": "joined",
        "type": "trigger",
        "trigger": "contact.added_to_audience",
        "action": null,
        "config": { "audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV" }
      },
      {
        "id": "aus_3V5TZIXXak1SSmGcOmzPOeFaguQ",
        "key": "welcome_email",
        "type": "action",
        "trigger": null,
        "action": "send_email",
        "config": { "type": "template", "template_id": "welcome", "from": "Acme <hello@acme.com>" }
      },
      {
        "id": "aus_3vM0ORwEXCQcyS7rylfQBQEXjVk",
        "key": "wait_1_day",
        "type": "action",
        "trigger": null,
        "action": "wait",
        "config": { "seconds": 86400 }
      },
      {
        "id": "aus_3HOgOzxaXBgVRpLFtpvJNo4vd5c",
        "key": "is_free_user",
        "type": "action",
        "trigger": null,
        "action": "condition",
        "config": {
          "filter": {
            "match": "all",
            "rules": [{ "field": "custom_fields.plan", "operator": "is_not_set" }]
          }
        }
      },
      {
        "id": "aus_3gCI5SWMPFVhOSawR6nz8sF55wp",
        "key": "upgrade_tips",
        "type": "action",
        "trigger": null,
        "action": "send_email",
        "config": { "type": "template", "template_id": "getting-started-tips" }
      },
      {
        "id": "aus_3Pq7Wd2LxN8cVt5RmK0sHy4BfJe",
        "key": "done",
        "type": "action",
        "trigger": null,
        "action": "end",
        "config": {}
      }
    ],
    "connections": [
      { "from": "joined", "to": "welcome_email", "branch": "default" },
      { "from": "welcome_email", "to": "wait_1_day", "branch": "default" },
      { "from": "wait_1_day", "to": "is_free_user", "branch": "default" },
      { "from": "is_free_user", "to": "upgrade_tips", "branch": "yes" },
      { "from": "is_free_user", "to": "done", "branch": "no" }
    ]
  },
  "message": "Automation was successfully created.",
  "notify": true
}
```

**400**

```json
{
  "message": "Validation failed.",
  "errors": {
    "steps.1.action": ["Action \"forward_email\" is not allowed for context \"contact\"."],
    "steps": ["Action step \"upgrade_tips\" is not reachable from any trigger."]
  }
}
```

---
Zdroj: https://emailit.com/cs/docs/api-reference/automations/create/

## Načtení automatizace — GET /automations/{id}

> Načte automatizaci s jejím stavem, nastavením, kroky se spouštěči a akcemi a propojeními mezi nimi.

# Načtení automatizace

Načte automatizaci s celým grafem. Vyžaduje API klíč s oprávněním `full`.

`GET /automations/{id}`

## Parametry v cestě

- `id` (string, povinné): ID automatizace (`aut_…`).

## Odpověď

Vrací automatizaci v poli `data`.

- `id` (string): ID automatizace s předponou `aut_`.

- `context` (string): `contact`, `email` nebo `event`.

- `name` (string): Název automatizace.

- `description` (string | null): Volitelný popis.

- `status` (string): `draft`, `running`, `paused`, `stopped` nebo `archived`.

- `settings` (object): Pravidla spouštění: `on_step_failure`, `allow_reentry`, `max_concurrent_runs`, `cooldown_seconds`. Prázdné, pokud jste žádné nenastavili.

- `last_triggered_at` (string | null): Kdy automatizace naposledy zahájila spuštění.

- `published_at` (string | null): Kdy byla automatizace poprvé zapnuta.

- `steps` (object[]): Pro každý krok jeho `id` (`aus_…`), `key`, `type`, `trigger`, `action` a `config`. Podrobnosti spuštění odkazují na kroky podle `id`, statistiky podle `key`.

- `connections` (object[]): Pro každou hranu klíče kroků `from` a `to` a její `branch`.

Význam jednotlivých spouštěčů, akcí a nastavení najdete na stránce [Vytvoření automatizace](/cs/docs/api-reference/automations/create/). Pokud automatizace neexistuje nebo byla smazána, vrací `404`.

**Požadavek** `GET /automations/{id}`

**cURL**

```bash
curl https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
```

**Node.js**

```javascript
const res = await fetch('https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe', {
  headers: { Authorization: `Bearer ${process.env.EMAILIT_API_KEY}` },
});
const { data: automation } = await res.json();
```

**Python**

```python
import os, requests

r = requests.get(
    "https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe",
    headers={"Authorization": f"Bearer {os.environ['EMAILIT_API_KEY']}"},
)
automation = r.json()["data"]
```

**PHP**

```php
$client = new GuzzleHttp\Client(['base_uri' => 'https://api.emailit.com/v2/']);

$response = $client->get('automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe', [
    'headers' => ['Authorization' => 'Bearer ' . getenv('EMAILIT_API_KEY')],
]);
$automation = json_decode($response->getBody(), true)['data'];
```

**200**

```json
{
  "data": {
    "id": "aut_3xqC9YD79FZZA36uTekWTBO1ghe",
    "context": "contact",
    "name": "Welcome series",
    "description": "Welcome new subscribers, then nudge free users a day later.",
    "status": "running",
    "settings": { "allow_reentry": false },
    "last_triggered_at": "2026-10-03T14:12:40.551870+00:00",
    "published_at": "2026-10-01T10:00:02.204118+00:00",
    "created_at": "2026-10-01T09:41:05.318274+00:00",
    "updated_at": "2026-10-03T14:12:40.551870+00:00",
    "steps": [
      {
        "id": "aus_3ZqpuxjmL1szZ8og6uGL1mT6QEJ",
        "key": "joined",
        "type": "trigger",
        "trigger": "contact.added_to_audience",
        "action": null,
        "config": { "audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV" }
      },
      {
        "id": "aus_3V5TZIXXak1SSmGcOmzPOeFaguQ",
        "key": "welcome_email",
        "type": "action",
        "trigger": null,
        "action": "send_email",
        "config": { "type": "template", "template_id": "welcome", "from": "Acme <hello@acme.com>" }
      },
      {
        "id": "aus_3vM0ORwEXCQcyS7rylfQBQEXjVk",
        "key": "wait_1_day",
        "type": "action",
        "trigger": null,
        "action": "wait",
        "config": { "seconds": 86400 }
      }
    ],
    "connections": [
      { "from": "joined", "to": "welcome_email", "branch": "default" },
      { "from": "welcome_email", "to": "wait_1_day", "branch": "default" }
    ]
  }
}
```

**404**

```json
{
  "message": "Automation not found."
}
```

---
Zdroj: https://emailit.com/cs/docs/api-reference/automations/get/

## Úprava automatizace — POST /automations/{id}

> Přejmenuje automatizaci, změní její nastavení, nebo nahradí její graf kroků a propojení s úplnou validací.

# Úprava automatizace

Upraví název, popis, nastavení nebo graf automatizace. Vyžaduje API klíč s oprávněním `full`. Kontext nelze změnit.

Pokud chcete změnit graf, pošlete `steps` a `connections` společně; nahradí aktuální graf. Kroky, jejichž `key` už existuje, si ponechají ID a historii spuštění, kroky, které vynecháte, se smažou, a nové klíče se přidají. Na rozdíl od vytvoření úprava validuje i konfiguraci každé akce (například `send_email` potřebuje `type` a `template_id`, `wait` potřebuje `seconds`).

Než změníte graf běžící automatizace, [automatizaci pozastavte](/cs/docs/api-reference/automations/pause/) a pak ji znovu [zapněte](/cs/docs/api-reference/automations/start/), aby se nové spouštěče projevily.

`POST /automations/{id}`

## Parametry v cestě

- `id` (string, povinné): ID automatizace (`aut_…`).

## Parametry v těle požadavku

- `name` (string): Název, nejvýše 191 znaků.

- `description` (string): Popis.

- `settings` (object): Nahradí všechna nastavení: `on_step_failure`, `allow_reentry`, `max_concurrent_runs`, `cooldown_seconds`. Viz [Nastavení](/cs/docs/api-reference/automations/create/#settings).

- `steps` (object[]): Úplný seznam kroků. Povinné, pokud posíláte `connections`. Viz [Kroky](/cs/docs/api-reference/automations/create/#steps).

- `connections` (object[]): Úplný seznam propojení. Povinné, pokud posíláte `steps`. Viz [Propojení](/cs/docs/api-reference/automations/create/#connections).

## Odpověď

Vrací upravenou automatizaci v poli `data` spolu s `message` a `notify`. Pokud validace selže, vrací `400` s polem `errors`, jehož klíče jsou cesty k polím, a pokud automatizace neexistuje, `404`.

**Požadavek** `POST /automations/{id}`

**cURL**

```bash
curl -X POST https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Welcome series (v2)",
    "settings": { "allow_reentry": false, "on_step_failure": "skip" }
  }'
```

**Node.js**

```javascript
const res = await fetch('https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.EMAILIT_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    name: 'Welcome series (v2)',
    settings: { allow_reentry: false, on_step_failure: 'skip' },
  }),
});
const { data: automation } = await res.json();
```

**Python**

```python
import os, requests

r = requests.post(
    "https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe",
    headers={"Authorization": f"Bearer {os.environ['EMAILIT_API_KEY']}"},
    json={
        "name": "Welcome series (v2)",
        "settings": {"allow_reentry": False, "on_step_failure": "skip"},
    },
)
automation = r.json()["data"]
```

**PHP**

```php
$client = new GuzzleHttp\Client(['base_uri' => 'https://api.emailit.com/v2/']);

$response = $client->post('automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe', [
    'headers' => ['Authorization' => 'Bearer ' . getenv('EMAILIT_API_KEY')],
    'json' => [
        'name' => 'Welcome series (v2)',
        'settings' => ['allow_reentry' => false, 'on_step_failure' => 'skip'],
    ],
]);
$automation = json_decode($response->getBody(), true)['data'];
```

**200**

```json
{
  "data": {
    "id": "aut_3xqC9YD79FZZA36uTekWTBO1ghe",
    "context": "contact",
    "name": "Welcome series (v2)",
    "description": "Welcome new subscribers, then nudge free users a day later.",
    "status": "paused",
    "settings": { "allow_reentry": false, "on_step_failure": "skip" },
    "last_triggered_at": "2026-10-03T14:12:40.551870+00:00",
    "published_at": "2026-10-01T10:00:02.204118+00:00",
    "created_at": "2026-10-01T09:41:05.318274+00:00",
    "updated_at": "2026-10-04T08:15:22.730115+00:00",
    "steps": [
      {
        "id": "aus_3ZqpuxjmL1szZ8og6uGL1mT6QEJ",
        "key": "joined",
        "type": "trigger",
        "trigger": "contact.added_to_audience",
        "action": null,
        "config": { "audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV" }
      },
      {
        "id": "aus_3V5TZIXXak1SSmGcOmzPOeFaguQ",
        "key": "welcome_email",
        "type": "action",
        "trigger": null,
        "action": "send_email",
        "config": { "type": "template", "template_id": "welcome", "from": "Acme <hello@acme.com>" }
      }
    ],
    "connections": [
      { "from": "joined", "to": "welcome_email", "branch": "default" }
    ]
  },
  "message": "Automation was successfully updated.",
  "notify": true
}
```

**400**

```json
{
  "message": "Validation failed.",
  "errors": {
    "steps.2.config.seconds": ["Wait seconds cannot exceed 2592000 (30 days)."],
    "steps.1.config.template_id": ["Template ID is required when type is \"template\"."]
  }
}
```

**404**

```json
{
  "message": "Automation not found."
}
```

---
Zdroj: https://emailit.com/cs/docs/api-reference/automations/update/

## Výpis automatizací — GET /automations

> Vypíše automatizace workspace se stránkováním přes page a per_page, filtrované podle kontextu, stavu nebo názvu.

# Výpis automatizací

Vrátí automatizace workspace od nejnovějších, bez jejich kroků a propojení. Vyžaduje API klíč s oprávněním `full`. Smazané automatizace se nevypisují.

`GET /automations`

## Parametry dotazu

- `page` (integer): Číslo stránky, od 1.

- `per_page` (integer): Počet automatizací na stránce, od 1 do 100.

- `filter[context]` (string): Jen automatizace s tímto kontextem: `contact`, `email` nebo `event`.

- `filter[status]` (string): Jen automatizace v tomto stavu: `draft`, `running`, `paused`, `stopped` nebo `archived`.

- `filter[name]` (string): Hledá v části názvu bez ohledu na velikost písmen.

- `sort` (string): Pole pro řazení: `name`, `created_at`, `updated_at` nebo `last_triggered_at`.

- `order` (string): Směr řazení: `asc`, nebo `desc`.

Můžete také použít obecné filtry `key.condition=value` na `name`, `status`, `context` a `created_at`, spolu s `match`. Viz [Filtrování](/cs/docs/api-reference/filtering/).

## Odpověď

- `data` (object[]): Automatizace na této stránce: `id`, `context`, `name`, `description`, `status`, `settings`, `last_triggered_at`, `published_at`, `created_at`, `updated_at`. `settings` je v tomto výpisu vždy prázdný objekt; pokud ho chcete přečíst, [načtěte automatizaci](/cs/docs/api-reference/automations/get/).

- `total_records` (integer): Počet odpovídajících automatizací.

- `per_page` (integer): Použitá velikost stránky.

- `current_page` (integer): Číslo této stránky.

- `total_pages` (integer): Počet stránek.

**Požadavek** `GET /automations`

**cURL**

```bash
curl -G https://api.emailit.com/v2/automations \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  --data-urlencode "filter[status]=running" \
  -d sort=last_triggered_at \
  -d per_page=50
```

**Node.js**

```javascript
const params = new URLSearchParams({ 'filter[status]': 'running', sort: 'last_triggered_at', per_page: '50' });
const res = await fetch(`https://api.emailit.com/v2/automations?${params}`, {
  headers: { Authorization: `Bearer ${process.env.EMAILIT_API_KEY}` },
});
const { data, total_pages } = await res.json();
```

**Python**

```python
import os, requests

r = requests.get(
    "https://api.emailit.com/v2/automations",
    headers={"Authorization": f"Bearer {os.environ['EMAILIT_API_KEY']}"},
    params={"filter[status]": "running", "sort": "last_triggered_at", "per_page": 50},
)
automations = r.json()["data"]
```

**PHP**

```php
$client = new GuzzleHttp\Client(['base_uri' => 'https://api.emailit.com/v2/']);

$response = $client->get('automations', [
    'headers' => ['Authorization' => 'Bearer ' . getenv('EMAILIT_API_KEY')],
    'query' => ['filter[status]' => 'running', 'sort' => 'last_triggered_at', 'per_page' => 50],
]);
$automations = json_decode($response->getBody(), true)['data'];
```

**200**

```json
{
  "data": [
    {
      "id": "aut_3xqC9YD79FZZA36uTekWTBO1ghe",
      "context": "contact",
      "name": "Welcome series",
      "description": "Welcome new subscribers, then nudge free users a day later.",
      "status": "running",
      "settings": {},
      "last_triggered_at": "2026-10-03T14:12:40.551870+00:00",
      "published_at": "2026-10-01T10:00:02.204118+00:00",
      "created_at": "2026-10-01T09:41:05.318274+00:00",
      "updated_at": "2026-10-03T14:12:40.551870+00:00"
    }
  ],
  "total_records": 1,
  "per_page": 50,
  "current_page": 1,
  "total_pages": 1
}
```

---
Zdroj: https://emailit.com/cs/docs/api-reference/automations/list/

## Smazání automatizace — DELETE /automations/{id}

> Smaže automatizaci, takže přestane reagovat na spouštěče. Pokud chcete zrušit i probíhající spuštění, automatizaci nejdřív zastavte.

# Smazání automatizace

Smaže automatizaci. Zmizí z výpisů a přestane reagovat na spouštěče. Vyžaduje API klíč s oprávněním `full`.

Spuštění, která už probíhají, se nezruší. Pokud je chcete zrušit, [automatizaci zastavte](/cs/docs/api-reference/automations/stop/) dřív, než ji smažete.

`DELETE /automations/{id}`

## Parametry v cestě

- `id` (string, povinné): ID automatizace (`aut_…`).

## Odpověď

Vrací pole `message`, které smazání potvrzuje. Pokud automatizace neexistuje nebo už byla smazána, vrací `404`.

**Požadavek** `DELETE /automations/{id}`

**cURL**

```bash
curl -X DELETE https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
```

**Node.js**

```javascript
const res = await fetch('https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe', {
  method: 'DELETE',
  headers: { Authorization: `Bearer ${process.env.EMAILIT_API_KEY}` },
});
const result = await res.json();
```

**Python**

```python
import os, requests

r = requests.delete(
    "https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe",
    headers={"Authorization": f"Bearer {os.environ['EMAILIT_API_KEY']}"},
)
result = r.json()
```

**PHP**

```php
$client = new GuzzleHttp\Client(['base_uri' => 'https://api.emailit.com/v2/']);

$response = $client->delete('automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe', [
    'headers' => ['Authorization' => 'Bearer ' . getenv('EMAILIT_API_KEY')],
]);
$result = json_decode($response->getBody(), true);
```

**200**

```json
{
  "message": "Automation was deleted successfully.",
  "notify": true
}
```

**404**

```json
{
  "message": "Automation not found."
}
```

---
Zdroj: https://emailit.com/cs/docs/api-reference/automations/delete/

## Zapnutí automatizace — POST /automations/{id}/start

> Převede automatizaci do stavu running, takže její spouštěče zahajují nová spuštění. Funguje pro automatizace ve stavu draft, paused i stopped.

# Zapnutí automatizace

Převede automatizaci do stavu `running`. Od té chvíle odpovídající spouštěče zahajují spuštění; události, které nastaly před zapnutím, ne. Vyžaduje API klíč s oprávněním `full`.

Zapnout můžete automatizaci ve stavu `draft`, `paused` nebo `stopped`. První zapnutí nastaví `published_at`.

Při zapnutí se graf znovu nevaliduje. Pokud jste automatizaci sestavili přes [Vytvoření automatizace](/cs/docs/api-reference/automations/create/), které kontroluje jen strukturu, ujistěte se, že je konfigurace každé akce úplná, nebo graf jednou pošlete přes [Úpravu automatizace](/cs/docs/api-reference/automations/update/), která ho zvaliduje úplně. Krok s neúplnou konfigurací selže, jakmile na něj spuštění dojde.

`POST /automations/{id}/start`

## Parametry v cestě

- `id` (string, povinné): ID automatizace (`aut_…`).

## Odpověď

Vrací automatizaci v poli `data` s polem `status` nastaveným na `running`. Pokud automatizace neexistuje, vrací `404`.

**Požadavek** `POST /automations/{id}/start`

**cURL**

```bash
curl -X POST https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/start \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
```

**Node.js**

```javascript
const res = await fetch('https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/start', {
  method: 'POST',
  headers: { Authorization: `Bearer ${process.env.EMAILIT_API_KEY}` },
});
const { data: automation } = await res.json();
```

**Python**

```python
import os, requests

r = requests.post(
    "https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/start",
    headers={"Authorization": f"Bearer {os.environ['EMAILIT_API_KEY']}"},
)
automation = r.json()["data"]
```

**PHP**

```php
$client = new GuzzleHttp\Client(['base_uri' => 'https://api.emailit.com/v2/']);

$response = $client->post('automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/start', [
    'headers' => ['Authorization' => 'Bearer ' . getenv('EMAILIT_API_KEY')],
]);
$automation = json_decode($response->getBody(), true)['data'];
```

**200**

```json
{
  "data": {
    "id": "aut_3xqC9YD79FZZA36uTekWTBO1ghe",
    "context": "contact",
    "name": "Welcome series",
    "description": "Welcome new subscribers, then nudge free users a day later.",
    "status": "running",
    "settings": { "allow_reentry": false },
    "last_triggered_at": null,
    "published_at": "2026-10-01T10:00:02.204118+00:00",
    "created_at": "2026-10-01T09:41:05.318274+00:00",
    "updated_at": "2026-10-01T10:00:02.204118+00:00",
    "steps": [
      {
        "id": "aus_3ZqpuxjmL1szZ8og6uGL1mT6QEJ",
        "key": "joined",
        "type": "trigger",
        "trigger": "contact.added_to_audience",
        "action": null,
        "config": { "audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV" }
      },
      {
        "id": "aus_3V5TZIXXak1SSmGcOmzPOeFaguQ",
        "key": "welcome_email",
        "type": "action",
        "trigger": null,
        "action": "send_email",
        "config": { "type": "template", "template_id": "welcome", "from": "Acme <hello@acme.com>" }
      }
    ],
    "connections": [
      { "from": "joined", "to": "welcome_email", "branch": "default" }
    ]
  },
  "message": "Automation was successfully started.",
  "notify": true
}
```

**404**

```json
{
  "message": "Automation not found."
}
```

---
Zdroj: https://emailit.com/cs/docs/api-reference/automations/start/

## Pozastavení automatizace — POST /automations/{id}/pause

> Pozastaví automatizaci, takže její spouštěče přestanou zahajovat nová spuštění, zatímco už probíhající spuštění doběhnou do konce.

# Pozastavení automatizace

Převede automatizaci do stavu `paused`. Její spouštěče přestanou zahajovat nová spuštění, ale už probíhající spuštění pokračují, včetně těch, která čekají na kroku `wait`. Vyžaduje API klíč s oprávněním `full`.

Pokud chcete zrušit i probíhající spuštění, automatizaci místo toho [zastavte](/cs/docs/api-reference/automations/stop/). Spouštěče znovu aktivujete tím, že automatizaci opět [zapnete](/cs/docs/api-reference/automations/start/).

`POST /automations/{id}/pause`

## Parametry v cestě

- `id` (string, povinné): ID automatizace (`aut_…`).

## Odpověď

Vrací automatizaci v poli `data` s polem `status` nastaveným na `paused`. Pokud automatizace neexistuje, vrací `404`.

**Požadavek** `POST /automations/{id}/pause`

**cURL**

```bash
curl -X POST https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/pause \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
```

**Node.js**

```javascript
const res = await fetch('https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/pause', {
  method: 'POST',
  headers: { Authorization: `Bearer ${process.env.EMAILIT_API_KEY}` },
});
const { data: automation } = await res.json();
```

**Python**

```python
import os, requests

r = requests.post(
    "https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/pause",
    headers={"Authorization": f"Bearer {os.environ['EMAILIT_API_KEY']}"},
)
automation = r.json()["data"]
```

**PHP**

```php
$client = new GuzzleHttp\Client(['base_uri' => 'https://api.emailit.com/v2/']);

$response = $client->post('automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/pause', [
    'headers' => ['Authorization' => 'Bearer ' . getenv('EMAILIT_API_KEY')],
]);
$automation = json_decode($response->getBody(), true)['data'];
```

**200**

```json
{
  "data": {
    "id": "aut_3xqC9YD79FZZA36uTekWTBO1ghe",
    "context": "contact",
    "name": "Welcome series",
    "description": "Welcome new subscribers, then nudge free users a day later.",
    "status": "paused",
    "settings": { "allow_reentry": false },
    "last_triggered_at": "2026-10-03T14:12:40.551870+00:00",
    "published_at": "2026-10-01T10:00:02.204118+00:00",
    "created_at": "2026-10-01T09:41:05.318274+00:00",
    "updated_at": "2026-10-04T08:10:51.004732+00:00",
    "steps": [
      {
        "id": "aus_3ZqpuxjmL1szZ8og6uGL1mT6QEJ",
        "key": "joined",
        "type": "trigger",
        "trigger": "contact.added_to_audience",
        "action": null,
        "config": { "audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV" }
      },
      {
        "id": "aus_3V5TZIXXak1SSmGcOmzPOeFaguQ",
        "key": "welcome_email",
        "type": "action",
        "trigger": null,
        "action": "send_email",
        "config": { "type": "template", "template_id": "welcome", "from": "Acme <hello@acme.com>" }
      }
    ],
    "connections": [
      { "from": "joined", "to": "welcome_email", "branch": "default" }
    ]
  },
  "message": "Automation was successfully paused.",
  "notify": true
}
```

**404**

```json
{
  "message": "Automation not found."
}
```

---
Zdroj: https://emailit.com/cs/docs/api-reference/automations/pause/

## Zastavení automatizace — POST /automations/{id}/stop

> Zastaví automatizaci a zruší všechna její probíhající spuštění. Dostupné jen přes API, ne ve webovém rozhraní.

# Zastavení automatizace

Převede automatizaci do stavu `stopped` a zruší každé spuštění, které je ještě ve stavu `running`; tato spuštění dostanou stav `canceled` a jejich zbývající kroky se neprovedou. Vyžaduje API klíč s oprávněním `full`.

Zastavení je dostupné jen přes API. Pokud chcete, aby probíhající spuštění pokračovala, automatizaci místo toho [pozastavte](/cs/docs/api-reference/automations/pause/). Zastavenou automatizaci můžete znovu [zapnout](/cs/docs/api-reference/automations/start/); nová spuštění začnou od začátku.

`POST /automations/{id}/stop`

## Parametry v cestě

- `id` (string, povinné): ID automatizace (`aut_…`).

## Odpověď

Vrací automatizaci v poli `data` s polem `status` nastaveným na `stopped`. Pokud automatizace neexistuje, vrací `404`.

**Požadavek** `POST /automations/{id}/stop`

**cURL**

```bash
curl -X POST https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/stop \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
```

**Node.js**

```javascript
const res = await fetch('https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/stop', {
  method: 'POST',
  headers: { Authorization: `Bearer ${process.env.EMAILIT_API_KEY}` },
});
const { data: automation } = await res.json();
```

**Python**

```python
import os, requests

r = requests.post(
    "https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/stop",
    headers={"Authorization": f"Bearer {os.environ['EMAILIT_API_KEY']}"},
)
automation = r.json()["data"]
```

**PHP**

```php
$client = new GuzzleHttp\Client(['base_uri' => 'https://api.emailit.com/v2/']);

$response = $client->post('automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/stop', [
    'headers' => ['Authorization' => 'Bearer ' . getenv('EMAILIT_API_KEY')],
]);
$automation = json_decode($response->getBody(), true)['data'];
```

**200**

```json
{
  "data": {
    "id": "aut_3xqC9YD79FZZA36uTekWTBO1ghe",
    "context": "contact",
    "name": "Welcome series",
    "description": "Welcome new subscribers, then nudge free users a day later.",
    "status": "stopped",
    "settings": { "allow_reentry": false },
    "last_triggered_at": "2026-10-03T14:12:40.551870+00:00",
    "published_at": "2026-10-01T10:00:02.204118+00:00",
    "created_at": "2026-10-01T09:41:05.318274+00:00",
    "updated_at": "2026-10-05T16:45:09.882301+00:00",
    "steps": [
      {
        "id": "aus_3ZqpuxjmL1szZ8og6uGL1mT6QEJ",
        "key": "joined",
        "type": "trigger",
        "trigger": "contact.added_to_audience",
        "action": null,
        "config": { "audience_id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV" }
      },
      {
        "id": "aus_3V5TZIXXak1SSmGcOmzPOeFaguQ",
        "key": "welcome_email",
        "type": "action",
        "trigger": null,
        "action": "send_email",
        "config": { "type": "template", "template_id": "welcome", "from": "Acme <hello@acme.com>" }
      }
    ],
    "connections": [
      { "from": "joined", "to": "welcome_email", "branch": "default" }
    ]
  },
  "message": "Automation was successfully stopped.",
  "notify": true
}
```

**404**

```json
{
  "message": "Automation not found."
}
```

---
Zdroj: https://emailit.com/cs/docs/api-reference/automations/stop/

## Ruční spuštění — POST /automations/{id}/trigger

> Aktivuje spouštěč system.manual běžící automatizace s vlastním obsahem, takže spuštění zahájíte z vlastního kódu.

# Ruční spuštění

Aktivuje spouštěč `system.manual` s obsahem, který zvolíte. Automatizace musí být ve stavu `running` a mít krok se spouštěčem `system.manual`; jinak se žádné spuštění nezahájí. Vyžaduje API klíč s oprávněním `full`. Ruční spouštěče jsou dostupné jen přes API.

Spuštění se zahájí asynchronně a stojí 3 kredity jako každé jiné spuštění. Najdete ho přes [Výpis spuštění](/cs/docs/api-reference/automations/runs/).

> **Aktivují se všechny ruční spouštěče ve workspace:** Emailit zatím doručí ruční aktivaci každé běžící automatizaci ve workspace, která má krok se spouštěčem `system.manual`, nejen té, která je v cestě. Pokud chcete automatizaci omezit jen na její vlastní volání, přidejte do jejího kroku se spouštěčem filtr: `{ "match": "all", "rules": [{ "field": "automation_id", "operator": "equals", "value": "aut_…" }] }`.

`POST /automations/{id}/trigger`

## Parametry v cestě

- `id` (string, povinné): ID automatizace (`aut_…`).

## Parametry v těle požadavku

- `payload` (object): Data pro spuštění. Emailit přidá `automation_id` a výsledek uloží jako `payload` spuštění. Kroky ho mohou číst přes proměnné, například `{{payload.order_id}}`, a přes podmínky, například `payload.plan`. Čeho se spuštění týká, závisí na kontextu automatizace: - `contact`: předejte `contact_id` (`con_…`). Akce s kontakty a `send_email` použijí tento kontakt. - `email`: předejte `email_id` (`em_…`). Akce s e-maily použijí tento e-mail. - `event`: libovolná data. V konfiguraci akcí nastavte `to` nebo `email`, například `"to": "{{payload.customer_email}}"`.

## Odpověď

Jakmile se aktivace spouštěče zařadí do fronty, vrací `200` s polem `message`. Pokud automatizace není ve stavu `running`, vrací `422`, a pokud neexistuje, `404`.

**Požadavek** `POST /automations/{id}/trigger`

**cURL**

```bash
curl -X POST https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/trigger \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "payload": {
      "contact_id": "con_3munwNLaXKUARc6ff9wPtxKVq4A",
      "plan": "pro",
      "order_id": "ord_1042"
    }
  }'
```

**Node.js**

```javascript
const res = await fetch('https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/trigger', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.EMAILIT_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    payload: { contact_id: 'con_3munwNLaXKUARc6ff9wPtxKVq4A', plan: 'pro', order_id: 'ord_1042' },
  }),
});
const result = await res.json();
```

**Python**

```python
import os, requests

r = requests.post(
    "https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/trigger",
    headers={"Authorization": f"Bearer {os.environ['EMAILIT_API_KEY']}"},
    json={"payload": {"contact_id": "con_3munwNLaXKUARc6ff9wPtxKVq4A", "plan": "pro", "order_id": "ord_1042"}},
)
result = r.json()
```

**PHP**

```php
$client = new GuzzleHttp\Client(['base_uri' => 'https://api.emailit.com/v2/']);

$response = $client->post('automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/trigger', [
    'headers' => ['Authorization' => 'Bearer ' . getenv('EMAILIT_API_KEY')],
    'json' => [
        'payload' => ['contact_id' => 'con_3munwNLaXKUARc6ff9wPtxKVq4A', 'plan' => 'pro', 'order_id' => 'ord_1042'],
    ],
]);
$result = json_decode($response->getBody(), true);
```

**200**

```json
{
  "message": "Automation trigger dispatched."
}
```

**422**

```json
{
  "message": "Automation must be running to trigger."
}
```

**404**

```json
{
  "message": "Automation not found."
}
```

---
Zdroj: https://emailit.com/cs/docs/api-reference/automations/trigger/

## Výpis spuštění — GET /automations/{id}/runs

> Vypíše spuštění automatizace od nejnovějších, u každého s událostí, která ho vyvolala, obsahem, stavem a časy.

# Výpis spuštění

Vrátí spuštění automatizace od nejnovějších. Každé spuštění je jeden průchod grafem, který zahájil spouštěč. Vyžaduje API klíč s oprávněním `full`.

`GET /automations/{id}/runs`

## Parametry v cestě

- `id` (string, povinné): ID automatizace (`aut_…`).

## Parametry dotazu

- `page` (integer): Číslo stránky, od 1.

- `per_page` (integer): Počet spuštění na stránce, od 1 do 100.

- `filter[status]` (string): Jen spuštění v tomto stavu: `running`, `completed`, `failed` nebo `canceled`.

Filtrovat můžete také přes `key.condition=value` podle `status`, `event` a `created_at` (například `created_at.after=2026-10-01`) a podle stejných klíčů řadit přes `order` a `direction`. Viz [Filtrování](/cs/docs/api-reference/filtering/).

## Odpověď

- `data` (object[]): Spuštění na této stránce. Viz pole níže.

- `total_records, per_page, current_page, total_pages` (integer): Údaje o stránkování.

Každé spuštění má:

- `id` (string): ID spuštění s předponou `aur_`.

- `automation_id` (string): Automatizace (`aut_…`).

- `contact_id` (string | null): Kontakt spuštění (`con_…`) v kontextu `contact`.

- `email_id` (string | null): E-mail spuštění (`em_…`) v kontextu `email`.

- `event_id` (string | null): ID zdrojové události, pokud ho obsah spouštěče má.

- `event` (string): Spouštěč, který spuštění zahájil, například `contact.added_to_audience` nebo `system.manual`.

- `payload` (object): V tomto výpisu vždy prázdný objekt. Pokud chcete přečíst obsah spouštěče, [načtěte spuštění](/cs/docs/api-reference/automations/run/).

- `meta` (object): V tomto výpisu vždy prázdný objekt. Pokud chcete přečíst metadata, například `failure_reason`, načtěte spuštění.

- `status` (string): `running`, `completed`, `failed` nebo `canceled` (automatizace byla zastavena).

- `started_at, completed_at, created_at, updated_at` (string | null): Časová razítka v UTC.

**Požadavek** `GET /automations/{id}/runs`

**cURL**

```bash
curl -G https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/runs \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  --data-urlencode "filter[status]=failed"
```

**Node.js**

```javascript
const params = new URLSearchParams({ 'filter[status]': 'failed' });
const res = await fetch(
  `https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/runs?${params}`,
  { headers: { Authorization: `Bearer ${process.env.EMAILIT_API_KEY}` } },
);
const { data: runs } = await res.json();
```

**Python**

```python
import os, requests

r = requests.get(
    "https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/runs",
    headers={"Authorization": f"Bearer {os.environ['EMAILIT_API_KEY']}"},
    params={"filter[status]": "failed"},
)
runs = r.json()["data"]
```

**PHP**

```php
$client = new GuzzleHttp\Client(['base_uri' => 'https://api.emailit.com/v2/']);

$response = $client->get('automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/runs', [
    'headers' => ['Authorization' => 'Bearer ' . getenv('EMAILIT_API_KEY')],
    'query' => ['filter[status]' => 'failed'],
]);
$runs = json_decode($response->getBody(), true)['data'];
```

**200**

```json
{
  "data": [
    {
      "id": "aur_3q6GdFk2eRSG093grI0v9e6REu8",
      "automation_id": "aut_3xqC9YD79FZZA36uTekWTBO1ghe",
      "contact_id": "con_3munwNLaXKUARc6ff9wPtxKVq4A",
      "email_id": null,
      "event_id": null,
      "event": "contact.added_to_audience",
      "payload": {},
      "meta": {},
      "status": "failed",
      "started_at": "2026-10-03T14:12:40.551870+00:00",
      "completed_at": "2026-10-03T14:12:41.093355+00:00",
      "created_at": "2026-10-03T14:12:40.551870+00:00",
      "updated_at": "2026-10-03T14:12:41.093355+00:00"
    }
  ],
  "total_records": 1,
  "per_page": 25,
  "current_page": 1,
  "total_pages": 1
}
```

**404**

```json
{
  "message": "Automation not found."
}
```

---
Zdroj: https://emailit.com/cs/docs/api-reference/automations/runs/

## Načtení spuštění — GET /automations/{id}/runs/{run_id}

> Načte jedno spuštění automatizace s obsahem spouštěče, metadaty a stavem a výsledkem každého provedeného kroku.

# Načtení spuštění

Načte jedno spuštění automatizace včetně provedených kroků. Vyžaduje API klíč s oprávněním `full`.

`GET /automations/{id}/runs/{run_id}`

## Parametry v cestě

- `id` (string, povinné): ID automatizace (`aut_…`).

- `run_id` (string, povinné): ID spuštění (`aur_…`).

## Odpověď

Vrací spuštění v poli `data` s poli popsanými na stránce [Výpis spuštění](/cs/docs/api-reference/automations/runs/) a navíc s úplnými `payload` a `meta` a polem `run_steps`.

- `payload` (object | null): Obsah spouštěče: data události (`{ "object": { … } }`), nebo obsah, který jste předali při [ručním spuštění](/cs/docs/api-reference/automations/trigger/), s přidaným `automation_id`.

- `meta` (object | null): `source_event_id` propojuje spuštění s událostí, která ho zahájila. Neúspěšná spuštění mohou mít `failure_reason`: `insufficient_credits` (3 kredity za spuštění nebylo možné naúčtovat), nebo `run_timeout` (spuštění bylo po 72 hodinách stále ve stavu `running`, aniž by čekalo na některém kroku).

- `run_steps` (object[]): Jedna položka za každý krok, ke kterému spuštění došlo: - `step_id`: ID kroku (`aus_…`). Odpovídá `steps[].id` z [načtení automatizace](/cs/docs/api-reference/automations/get/). - `status`: `running`, `waiting` (krok `wait`, jehož doba ještě neuplynula), `completed` nebo `failed`. - `data`: výsledek kroku. Například `send_email` vrací `{ "result": "email_queued", "email_oid": "em_…", "to": "…" }`, `condition` vrací `{ "result": true, "branch": "yes" }` a neúspěšné kroky vracejí `{ "error": "…" }`. - `started_at`, `completed_at`, `created_at`.

Pokud automatizace nebo spuštění neexistuje, vrací `404`.

**Požadavek** `GET /automations/{id}/runs/{run_id}`

**cURL**

```bash
curl https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/runs/aur_3q6GdFk2eRSG093grI0v9e6REu8 \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
```

**Node.js**

```javascript
const res = await fetch(
  'https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/runs/aur_3q6GdFk2eRSG093grI0v9e6REu8',
  { headers: { Authorization: `Bearer ${process.env.EMAILIT_API_KEY}` } },
);
const { data: run } = await res.json();
```

**Python**

```python
import os, requests

r = requests.get(
    "https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/runs/aur_3q6GdFk2eRSG093grI0v9e6REu8",
    headers={"Authorization": f"Bearer {os.environ['EMAILIT_API_KEY']}"},
)
run = r.json()["data"]
```

**PHP**

```php
$client = new GuzzleHttp\Client(['base_uri' => 'https://api.emailit.com/v2/']);

$response = $client->get('automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/runs/aur_3q6GdFk2eRSG093grI0v9e6REu8', [
    'headers' => ['Authorization' => 'Bearer ' . getenv('EMAILIT_API_KEY')],
]);
$run = json_decode($response->getBody(), true)['data'];
```

**200**

```json
{
  "data": {
    "id": "aur_3q6GdFk2eRSG093grI0v9e6REu8",
    "automation_id": "aut_3xqC9YD79FZZA36uTekWTBO1ghe",
    "contact_id": "con_3munwNLaXKUARc6ff9wPtxKVq4A",
    "email_id": null,
    "event_id": null,
    "event": "contact.added_to_audience",
    "payload": {
      "object": {
        "id": "sub_3Fh2pQx9LmZr4Wt7Nc0bVd8KsYe",
        "object": "subscriber",
        "subscribed": true,
        "audience": { "id": "aud_3Cz7WJ9GpvD7P0PQez50xOmkZSV", "name": "Newsletter" },
        "contact": { "id": "con_3munwNLaXKUARc6ff9wPtxKVq4A", "email": "ada@example.com" }
      }
    },
    "meta": { "source_event_id": "evt_3Kd8sWq1NzXc5Vb7Mt2LpRy0HgA" },
    "status": "running",
    "started_at": "2026-10-03T14:12:40.551870+00:00",
    "completed_at": null,
    "created_at": "2026-10-03T14:12:40.551870+00:00",
    "updated_at": "2026-10-03T14:12:40.551870+00:00",
    "run_steps": [
      {
        "step_id": "aus_3V5TZIXXak1SSmGcOmzPOeFaguQ",
        "status": "completed",
        "data": {
          "result": "email_queued",
          "outcome": "accepted",
          "email_oid": "em_3Cp8cMgPskzB8tIlgUyNJkpDp9O",
          "to": "ada@example.com"
        },
        "started_at": "2026-10-03T14:12:40.702113+00:00",
        "completed_at": "2026-10-03T14:12:40.918540+00:00",
        "created_at": "2026-10-03T14:12:40.702113+00:00"
      },
      {
        "step_id": "aus_3vM0ORwEXCQcyS7rylfQBQEXjVk",
        "status": "waiting",
        "data": { "status": "waiting", "delayMs": 86400000, "seconds": 86400 },
        "started_at": "2026-10-03T14:12:41.004221+00:00",
        "completed_at": null,
        "created_at": "2026-10-03T14:12:41.004221+00:00"
      }
    ]
  }
}
```

**404**

```json
{
  "message": "Run not found."
}
```

---
Zdroj: https://emailit.com/cs/docs/api-reference/automations/run/

## Načtení statistik — GET /automations/{id}/stats

> Vrátí počty pro jednotlivé kroky automatizace: kolik spuštění došlo ke každému kroku, stavy kroků, výsledky a trychtýř e-mailů.

# Načtení statistik

Vrátí počty pro všechny kroky automatizace, s klíči podle klíčů kroků. Vyžaduje API klíč s oprávněním `full`.

`GET /automations/{id}/stats`

## Parametry v cestě

- `id` (string, povinné): ID automatizace (`aut_…`).

## Parametry dotazu

- `since` (string): Započítá jen provedení kroků vytvořená v tento čas nebo později. Datum a čas podle RFC 3339, například `2026-10-01T00:00:00Z`.

- `until` (string): Započítá jen provedení kroků vytvořená v tento čas nebo dříve. Datum a čas podle RFC 3339.

- `run_ids[]` (string): Započítá jen tato spuštění (`aur_…`). Pro více spuštění parametr zopakujte.

## Odpověď

Vrací `data`, objekt s jednou položkou pro každý klíč kroku. Kroky, ke kterým nedošlo žádné spuštění, mají `total` rovné `0`.

- `total` (integer): Kolikrát spuštění ke kroku došla.

- `by_status` (object): Počty podle stavu kroku: `running`, `waiting`, `completed`, `failed`.

- `by_outcome` (object): Počty podle výsledku. `send_email` a `forward_email`: `accepted` a pak poslední stav e-mailu (`delivered`, `loaded`, `clicked`, `bounced`, `failed`, `complained`, `unsubscribed`, `canceled`). `condition`: `matched`, `not_matched`. `experiment`: klíč vybrané varianty. `call_webhook`: `2xx`, `4xx`, `5xx`, `timeout`, `network_error`. Neúspěšné kroky: `error`.

- `funnel` (object): Jen pro kroky `send_email`. Kumulativní počty: `accepted` zahrnuje každý e-mail, který se dostal dál, `delivered` zahrnuje načtené a prokliknuté e-maily a `loaded` zahrnuje prokliknuté. `bounced`, `failed`, `complained` a `unsubscribed` jsou prosté počty.

**Požadavek** `GET /automations/{id}/stats`

**cURL**

```bash
curl -G https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/stats \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -d since=2026-10-01T00:00:00Z
```

**Node.js**

```javascript
const params = new URLSearchParams({ since: '2026-10-01T00:00:00Z' });
const res = await fetch(
  `https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/stats?${params}`,
  { headers: { Authorization: `Bearer ${process.env.EMAILIT_API_KEY}` } },
);
const { data: stats } = await res.json();
```

**Python**

```python
import os, requests

r = requests.get(
    "https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/stats",
    headers={"Authorization": f"Bearer {os.environ['EMAILIT_API_KEY']}"},
    params={"since": "2026-10-01T00:00:00Z"},
)
stats = r.json()["data"]
```

**PHP**

```php
$client = new GuzzleHttp\Client(['base_uri' => 'https://api.emailit.com/v2/']);

$response = $client->get('automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/stats', [
    'headers' => ['Authorization' => 'Bearer ' . getenv('EMAILIT_API_KEY')],
    'query' => ['since' => '2026-10-01T00:00:00Z'],
]);
$stats = json_decode($response->getBody(), true)['data'];
```

**200**

```json
{
  "data": {
    "joined": { "total": 0, "by_status": {}, "by_outcome": {} },
    "welcome_email": {
      "total": 412,
      "by_status": { "completed": 409, "failed": 3 },
      "by_outcome": { "delivered": 251, "loaded": 98, "clicked": 41, "bounced": 19, "error": 3 },
      "funnel": {
        "accepted": 390,
        "delivered": 390,
        "loaded": 139,
        "clicked": 41,
        "bounced": 19,
        "failed": 0,
        "complained": 0,
        "unsubscribed": 0
      }
    },
    "wait_1_day": {
      "total": 409,
      "by_status": { "completed": 352, "waiting": 57 },
      "by_outcome": {}
    },
    "is_free_user": {
      "total": 352,
      "by_status": { "completed": 352 },
      "by_outcome": { "matched": 270, "not_matched": 82 }
    },
    "upgrade_tips": {
      "total": 270,
      "by_status": { "completed": 270 },
      "by_outcome": { "accepted": 12, "delivered": 180, "loaded": 61, "clicked": 17 },
      "funnel": {
        "accepted": 270,
        "delivered": 258,
        "loaded": 78,
        "clicked": 17,
        "bounced": 0,
        "failed": 0,
        "complained": 0,
        "unsubscribed": 0
      }
    },
    "done": {
      "total": 82,
      "by_status": { "completed": 82 },
      "by_outcome": {}
    }
  }
}
```

**404**

```json
{
  "message": "Automation not found."
}
```

---
Zdroj: https://emailit.com/cs/docs/api-reference/automations/stats/

## Načtení statistik kroků — GET /automations/{id}/steps/{step_key}/stats

> Vrátí počty pro jeden krok automatizace podle jeho klíče: provedení, stavy, výsledky a trychtýř e-mailů.

# Načtení statistik kroků

Vrátí počty pro jeden krok automatizace. Vyžaduje API klíč s oprávněním `full`. Pole jsou stejná jako na stránce [Načtení statistik](/cs/docs/api-reference/automations/stats/).

`GET /automations/{id}/steps/{step_key}/stats`

## Parametry v cestě

- `id` (string, povinné): ID automatizace (`aut_…`).

- `step_key` (string, povinné): `key` kroku, například `welcome_email`.

## Parametry dotazu

- `since` (string): Započítá jen provedení kroků vytvořená v tento čas nebo později. Datum a čas podle RFC 3339.

- `until` (string): Započítá jen provedení kroků vytvořená v tento čas nebo dříve. Datum a čas podle RFC 3339.

## Odpověď

Vrací `data` s poli `total`, `by_status`, `by_outcome` a u kroků `send_email` také `funnel`. Pokud automatizace nebo klíč kroku neexistuje, vrací `404`.

**Požadavek** `GET /automations/{id}/steps/{step_key}/stats`

**cURL**

```bash
curl https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/steps/welcome_email/stats \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
```

**Node.js**

```javascript
const res = await fetch(
  'https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/steps/welcome_email/stats',
  { headers: { Authorization: `Bearer ${process.env.EMAILIT_API_KEY}` } },
);
const { data: stats } = await res.json();
```

**Python**

```python
import os, requests

r = requests.get(
    "https://api.emailit.com/v2/automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/steps/welcome_email/stats",
    headers={"Authorization": f"Bearer {os.environ['EMAILIT_API_KEY']}"},
)
stats = r.json()["data"]
```

**PHP**

```php
$client = new GuzzleHttp\Client(['base_uri' => 'https://api.emailit.com/v2/']);

$response = $client->get('automations/aut_3xqC9YD79FZZA36uTekWTBO1ghe/steps/welcome_email/stats', [
    'headers' => ['Authorization' => 'Bearer ' . getenv('EMAILIT_API_KEY')],
]);
$stats = json_decode($response->getBody(), true)['data'];
```

**200**

```json
{
  "data": {
    "total": 412,
    "by_status": { "completed": 409, "failed": 3 },
    "by_outcome": { "delivered": 251, "loaded": 98, "clicked": 41, "bounced": 19, "error": 3 },
    "funnel": {
      "accepted": 390,
      "delivered": 390,
      "loaded": 139,
      "clicked": 41,
      "bounced": 19,
      "failed": 0,
      "complained": 0,
      "unsubscribed": 0
    }
  }
}
```

**404**

```json
{
  "message": "Step not found."
}
```

---
Zdroj: https://emailit.com/cs/docs/api-reference/automations/step-stats/
