
# Automations-API

En automatisering är ett arbetsflöde som består av steg: en eller flera utlösare som startar det, följt av åtgärder, villkor, fördröjningar, AI-steg och övrigt, sammankopplade i en graf. Det är samma automatisering som du ser och redigerar på sidan [Automatiseringar](../automations/automations.md). Den här guiden täcker hur du läser och bygger dem via API:et.

- **Bas-URL**: `https://api.dmchamp.com/v1`
- **Autentisering**: din API-nyckel (se [Autentisering](authentication.md))
- **Fält och brödtexter**: varje parameter och svarsfält finns i [API-referensen](reference.md#tag/automations)
- **Fel**: se [Fel och paginering](errors-and-pagination.md) och [Fel](#errors) nedan

> **Byråer:** varje slutpunkt på den här sidan accepterar `sub_account_id` som en frågeparameter, så att du kan läsa och bygga en klients automatiseringar med din byrånivånyckel. Ett `sub_account_id` som inte är ett av dina klientkonton returnerar `404`. Se [API för byråer](../agency/api-for-agencies.md).

---

## Hur det fungerar: utkast först

API:et är byggt så att ingenting börjar köras av misstag.

1. **Läs katalogen.** `GET /automations/steps` listar varje utlösare, åtgärd och stegtyp du kan använda, plus grammatiken för att skriva en graf (`graph_rules`).
2. **Skapa ett utkast.** `POST /automations` lagrar automatiseringen **avstängd**. Ingenting körs ännu.
3. **Kontrollera det.** Läs tillbaka det, öppna det i byggverktyget (svaret ger dig dess `open_path`) och se till att personen som äger kontot har sett vad det gör och för vem.
4. **Slå på det.** `POST /automations/{automationId}/enable` är ett eget anrop. Detta är steget som får verkliga saker att hända: meddelanden skickas, poster ändras, verktyg ges till en AI-agent.

Redigering ändrar aldrig om en automatisering är på eller av. Det innebär också att en ändring av en automatisering som är **på** får effekt direkt, på den aktiva automatiseringen. För att ändra en körande automatisering på ett säkert sätt, inaktivera den, redigera den, kontrollera den och aktivera den igen.

Varje graf du skickar går igenom samma kontroller som byggverktygets arbetsyta tillämpar. En graf som inte kan öppnas eller köras nekas med ett `400` som listar exakt vad som behöver åtgärdas.

### Åtkomst

- Kontot behöver Automatiseringar. Utan det returnerar varje anrop på den här sidan `403`.
- Ett teammedlems åtkomst följer deras **Automatiseringar**-område i [Teamhantering](../settings/team-management.md): läsning (lista, hämta, steg, körningar, mappar) kräver **Visa**, allt som ändrar något kräver **Redigera**.
- På ett klientkonto vars plan inte inkluderar skapande och redigering av automatiseringar, returnerar skrivanropen `403`, precis som byggverktyget gör i appen.

---

## Slutpunkter

| Uppgift | Metod + sökväg | Utforskare |
|---|---|---|
| Lista automatiseringar | `GET /automations` | [Öppna i API-referens](reference.md#tag/automations/GET/automations) |
| Hämta en automatisering med dess graf | `GET /automations/{automationId}` | [Öppna i API-referens](reference.md#tag/automations/GET/automations/{automationId}) |
| Läs stegkatalogen | `GET /automations/steps` | [Öppna i API-referens](reference.md#tag/automations/GET/automations/steps) |
| Skapa en automatisering (utkast) | `POST /automations` | [Öppna i API-referens](reference.md#tag/automations/POST/automations) |
| Uppdatera en automatisering | `PUT /automations/{automationId}` | [Öppna i API-referens](reference.md#tag/automations/PUT/automations/{automationId}) |
| Slå på den | `POST /automations/{automationId}/enable` | [Öppna i API-referens](reference.md#tag/automations/POST/automations/{automationId}/enable) |
| Slå av den | `POST /automations/{automationId}/disable` | [Öppna i API-referens](reference.md#tag/automations/POST/automations/{automationId}/disable) |
| Läs körhistoriken | `GET /automations/{automationId}/runs` | [Öppna i API-referens](reference.md#tag/automations/GET/automations/{automationId}/runs) |
| Lista mappar | `GET /automations/folders` | [Öppna i API-referens](reference.md#tag/automations/GET/automations/folders) |
| Skapa en mapp | `POST /automations/folders` | [Öppna i API-referens](reference.md#tag/automations/POST/automations/folders) |
| Byt namn på en mapp | `PUT /automations/folders/{folderId}` | [Öppna i API-referens](reference.md#tag/automations/PUT/automations/folders/{folderId}) |
| Ta bort en mapp | `DELETE /automations/folders/{folderId}` | [Öppna i API-referens](reference.md#tag/automations/DELETE/automations/folders/{folderId}) |
| Flytta en automatisering till en mapp | `PUT /automations/{automationId}/folder` | [Öppna i API-referens](reference.md#tag/automations/PUT/automations/{automationId}/folder) |

---

## Läsa automatiseringar

`GET /automations` returnerar sammanfattningar (inga steg), senast ändrade först; `folder_id=none` listar de som inte ligger i någon mapp. `GET /automations/{automationId}` lägger till hela `graph`: varje steg (`nodes[]`) med dess `kind`, `label`, `alias`, `action`, `params` och `config`, samt anslutningarna (`edges[]`) med `from`, `to` och, efter ett villkor eller liknande, `branch`.

```bash
curl "https://api.dmchamp.com/v1/automations/8d2c7f1e-2a3b-4c5d-9e8f-0a1b2c3d4e5f?apiKey=YOUR_API_KEY"
```

**Bra att veta**

- **`alias` är hur senare steg läser ett stegs utdata**, som `${nodes.<alias>.<field>}`. Ett steg utan ett sådant refereras med sitt id.
- `params` behålls för äldre läsare; `config` bär på samma värden och mer (ett villkors regler, ett AI-stegs prompt, en fördröjnings varaktighet, en åtgärds slug och parametrar).
- **Hemligheter är dolda.** Värden som ser ut som inloggningsuppgifter (webhook-hemligheter, tokens, API-nycklar, lösenord, huvudvärden) kommer tillbaka som `"[redacted]"`. Skicka tillbaka `"[redacted]"` oförändrat så behålls det lagrade värdet.
- **Långa texter förkortas.** En enskild text som är längre än cirka 4 000 tecken klipps av och slutar med en ellips. Om du skickar tillbaka det steget, lägg in hela texten igen först.
- Om automatiseringstjänsten inte kan nås får du ett `503`, aldrig en tom lista i dess ställe. En tom lista betyder alltid att det inte finns några automatiseringar.

### Stegkatalogen

`GET /automations/steps` returnerar allt som en automatisering kan byggas av: de 8 `node_kinds`, varje utlösare med dess inställningar `fields` och `output_keys`, de inbyggda `actions` med deras parametrar, `api_actions` (åtgärder i detta API som ett åtgärdssteg kan anropa), `graph_rules`-grammatiken och `counts`. Detta är vad byggaren **erbjuder**, inte vad kontot har byggt: kontrollera detta innan du drar slutsatsen att en utlösare eller åtgärd inte finns.

- Utan `q` kommer de flera hundra API-åtgärderna tillbaka som etiketter grupperade efter område i `api_actions_by_tag` och den platta listan är tom.
- Med `q` (ett skiftlägesokänsligt ord) är `api_actions` den platta listan med träffar, begränsad till 60 (`api_actions_truncated` anger när). Åtgärder för anslutna tredjepartsappar söks också igenom och kommer tillbaka i `app_actions`: sök efter appens namn, till exempel `q=hubspot`. Varje post anger om kontot har den appen `connected`, och `connected_apps` listar de anslutna. `app_actions_unavailable` är `true` när appåtgärderna inte kunde sökas igenom denna gång; de andra listorna är fortfarande kompletta.

---

## Skapa och redigera

### Skapa ett utkast

```bash
curl -X POST "https://api.dmchamp.com/v1/automations?apiKey=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Price question auto-reply",
    "description": "Replies with the price list when someone asks about prices.",
    "graph": {
      "nodes": [
        { "id": "trigger_1", "type": "trigger", "label": "Incoming message",
          "data": { "trigger": { "kind": "incoming_message", "message_filter_contains": "price" } } },
        { "id": "send_prices", "type": "action", "label": "Send message",
          "data": { "action": { "provider": "native", "slug": "SEND_MESSAGE",
            "params": { "contact_id": "${trigger.contact.id}", "body": "Hi ${trigger.contact.first_name}, here is our price list: https://example.com/prices" } } } }
      ],
      "edges": [{ "source": "trigger_1", "target": "send_prices" }]
    }
  }'
```

```json
{ "success": true, "automation": { "id": "8d2c7f1e-…", "enabled": false, "…": "…" }, "draft": true, "open_path": "/automations/8d2c7f1e-…", "warnings": [] }
```

`draft: true` och `enabled: false` är normalt, inte ett fel: en ny automatisering är alltid ett utkast tills du aktiverar den. `warnings` listar vad byggaren inte kunde slutföra, som korta etiketter (till exempel `agent_function:not_linked`).

**Skriva grafen.** `graph_rules` från katalogen är den fullständiga grammatiken. I korthet:

- Varje nod har ett `id` (unikt i grafen), en `type` (en av de 8 [stegtyperna](#step-kinds)), en valfri `label`, och dess inställningar i `data` under en nyckel uppkallad efter dess typ (`data.trigger`, `data.action`, `data.condition`, `data.delay`, `data.ai`, `data.loop`, `data.transform`, `data.respond`).
- En automatisering behöver minst en utlösare. Den aktiva grammatiken tillåter upp till 10, och automatiseringen startar när någon av dem utlöses.
- Varje annat steg måste vara nåbart från en utlösare, och ingen anslutning får leda tillbaka till ett tidigare steg.
- Kanter som lämnar ett villkor bär `sourceHandle` `true` eller `false`; en loop `body` eller `done`; en "Vänta på svar"-fördröjning `replied` eller `timed_out`. Andra kanter har inga.
- Åtgärdsslugs och parametrar kommer från katalogen. **Gissa aldrig ett id** (en agent, en tagg, en lista, ett stadium): slå upp det med API:et först, eller lämna fältet som `""` för personen att välja i byggaren.
- Positioner är valfria; steg utan en sådan läggs ut automatiskt.
- Värden från tidigare steg skrivs som `${trigger.<field>}` och `${nodes.<step>.<field>}`. Se [Använda vad ett tidigare steg returnerade](../automations/automations.md#using-what-an-earlier-step-returned) och [Uttryck](../automations/automations.md#expressions).
- Grafen accepteras i två stavningar: byggarens egen (ovan) och den som en läsning svarar med (`kind`, `config`, `from`, `to`, `branch`). Så du kan läsa en automatisering, ändra ett steg och skicka tillbaka det.
- **Ett "skapa" är inte säkert att upprepa blint.** Om en begäran får timeout, lista dina automatiseringar innan du skickar den igen, annars kan du sluta med två utkast.

### Uppdatera

`PUT /automations/{automationId}` ändrar `name`, `description` och/eller `graph` (minst en, eller `400`). En `graph` ersätter **hela** grafen, så arbeta alltid utifrån det som är lagrat: läs in den, ändra det du behöver, och skicka tillbaka hela grafen.

```bash
curl -X PUT "https://api.dmchamp.com/v1/automations/8d2c7f1e-2a3b-4c5d-9e8f-0a1b2c3d4e5f?apiKey=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Price question auto-reply (EN)" }'
```

- **Behåll varje stegs `alias` exakt som du fick det.** Om du ändrar eller tar bort det kommer varje referens till det steget att bli tom. Se [Namnge dina steg](../automations/automations.md#naming-your-steps).
- **Lämna `"[redacted]"`-värden som de är**, och **återställ förkortade texter** (en text som slutar med ellips var avkortad vid läsningen).
- Huruvida automatiseringen är påslagen ändras aldrig här. Om den är påslagen är din ändring live så fort den sparas. Medan den är påslagen nekas en ändring som skulle få den att trigga sig själv: inaktivera den först.

### Aktivera och inaktivera

`POST /automations/{automationId}/enable` slår på en automatisering så att den körs vid sin trigger från och med nu. Anropa den först när personen som äger kontot har sett vad automatiseringen gör och för vem, och har godkänt det. Byggverktyget vägrar att slå på en graf som inte kan köras (ingen trigger, en loop, ett steg som triggar sig själv) med ett `400` som förklarar varför.

```bash
curl -X POST "https://api.dmchamp.com/v1/automations/8d2c7f1e-2a3b-4c5d-9e8f-0a1b2c3d4e5f/enable?apiKey=YOUR_API_KEY"
```

`POST /automations/{automationId}/disable` pausar den: körningar som redan pågår slutförs, inga nya körningar startar. Inaktivering är alltid tillåten. Inget av anropen kräver en body.

---

## Körningshistorik

`GET /automations/{automationId}/runs` returnerar körningar för en automatisering, de nyaste först (`limit` 1 till 50, standard 10): när varje körning startade och avslutades, vad som utlöste den, om den lyckades, och felet om den misslyckades. Att läsa automatiseringen berättar vad den **skulle** göra; körhistoriken berättar vad den **gjorde**, och det är det enda sättet att skilja en automatisering som aldrig körts från en som körs och misslyckas varje gång.

```bash
curl "https://api.dmchamp.com/v1/automations/8d2c7f1e-2a3b-4c5d-9e8f-0a1b2c3d4e5f/runs?apiKey=YOUR_API_KEY&limit=20"
```

- `mode` är `live` för en verklig körning, eller `safe` för en **Säker körning** från redigeraren. En säker körning skickar ingenting, så det är inget bevis på att automatiseringen fungerar i verklig användning.
- En tom `runs`-lista är ett svar, inte en lucka. Svaret innehåller då ett `note`: antingen har triggern aldrig aktiverats, eller så är automatiseringen avstängd.

---

## Mappar

Mappar grupperar bara automatiseringar i listan. De ändrar aldrig vad en automatisering gör eller om den är påslagen. Se [Organisera automatiseringar i mappar](../automations/automations.md#organizing-automations-in-folders).

```bash
curl -X PUT "https://api.dmchamp.com/v1/automations/8d2c7f1e-2a3b-4c5d-9e8f-0a1b2c3d4e5f/folder?apiKey=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "folder_id": "f1a2b3c4-5d6e-7f80-91a2-b3c4d5e6f708" }'
```

- Att lista mappar returnerar även `unfiled_count`, hur många automatiseringar som inte ligger i någon mapp.
- Ett mappnamn krävs, upp till 100 tecken, och måste vara unikt för kontot (`409`, `code: "folder_name_taken"`). Du kan också sortera in en automatisering genom att skicka med `folder_id` när du skapar den.
- Vid namnbyte ligger automatiseringarna kvar där de är.
- **Att ta bort en mapp tar endast bort mappen.** Dess automatiseringar hamnar utanför mapp och fortsätter köras precis som tidigare; svaret anger hur många som flyttades (`moved_to_no_folder`).
- Vid en flytt krävs `folder_id`; skicka `null` för att ta ut automatiseringen ur sin mapp.

---

## Katalog

### Stegtyper

| Typ | Vad den gör |
|---|---|
| `trigger` | Startar automatiseringen när något händer. |
| `action` | Kör ett steg: en inbyggd åtgärd, en API-åtgärd, en åtgärd i en ansluten app, en HTTP-förfrågan eller ett e-postmeddelande. |
| `condition` | Delar upp flödet baserat på en regel, i en `true`- och en `false`-gren. |
| `transform` | Kör en kort kodsnutt för att omforma data mellan steg. |
| `ai` | Frågar AI:n med en prompt du skriver. Den kan returnera text, separata fält eller välja en av flera grenar. |
| `delay` | Väntar en viss tid, eller väntar på att kontakten ska svara (med en timeout). |
| `loop` | Upprepar stegen inuti för varje objekt i en lista. |
| `respond` | Returnerar ett svar till webhook-anropet eller AI-agentens funktionsanrop som startade körningen. |

### Utlösare

Detta är de 40 utlösare (triggers) som katalogen listar idag, grupperade så som byggaren grupperar dem. Kolumnen **Inställningar** innehåller utlösarens egna inställningsnycklar (`fields`), som begränsar när den aktiveras. Varje utlösare tar även `respect_quiet_hours`, `run_hours`, `reentry` och `stop_on_response`; se [Automatiseringsinställningar](../automations/automations.md#automation-settings).

**Meddelanden**

| Utlösare (`kind`) | Aktiveras när | Inställningar |
|---|---|---|
| Inkommande meddelande (`incoming_message`) | En kontakt skickar ett meddelande via valfri kanal. | `campaign` (begränsar till en AI-agent), `channel`, `message_filter_contains` (nyckelord), `message_filter_regex` (mönster) |
| Missat samtal (`missed_call`) | Någon ringer ett av dina WhatsApp Web-nummer eller ditt eget SMS-nummer och ingen svarar. | `to_number` |
| Meddelande levererat (`message_delivered`) | Ett meddelande du skickat bekräftas som levererat av kanalen. | `channel`, `agent` |
| Meddelande misslyckades (`message_failed`) | Ett meddelande du skickat kunde inte levereras, med felmeddelandet. | `channel`, `agent` |
| Meddelande skickat (`message_sent`) | Alla meddelanden lämnar ditt konto: AI:ns, ditt, ett utskick, en uppföljning. Filtrera det, annars körs det på alla. | `channel`, `sent_by` |
| Uppföljning skickad (`follow_up_sent`) | En automatisk uppföljning skickas ut. | inga |
| Uppföljning hoppades över (`follow_up_skipped`) | En uppföljning hölls tillbaka eftersom dess villkor för sändning inte uppfylldes. | inga |
| Uppföljningar slutförda (`follow_up_exhausted`) | En kontakt fick den sista uppföljningen i sekvensen och inget mer ligger i kö. | inga |
| Konversation stängd (`conversation_closed`) | En chatt stängs, med information om hur den avslutades och en sammanfattning. | `channel`, `agent` |
| Utskick slutfört (`broadcast_completed`) | Ett utskick har skickats klart, med antal skickade och antal misslyckade. | inga |
| Leadsvar sorterat (`outreach_reply_labelled`) | Svaret från ett kallt e-postlead sorteras, till exempel som Intresserad. | `label` |
| Skool-kommentar mottagen (`skool_comment_received`) | En medlem kommenterar under ett Skool-inlägg som en av dina kommentarsregler bevakar. | inga |

**Kontakter**

| Utlösare (`kind`) | Aktiveras när | Inställningar |
|---|---|---|
| Ny kontakt (`contact_created`) | En ny person når dig för första gången via valfri kanal, samt vid importer, API:et och kontakter du skapar manuellt. | inga |
| Kontakt uppdaterad (`contact_updated`) | Ett kontaktfält ändras. | `field` |
| Kontakter du lägger till här (`contact_added`) | Endast för kontakter du själv lägger till i denna automatisering från kontaktsidan. En körning per kontakt. | inga |
| Tagg tillagd (`tag_applied`) | En tagg läggs till på en kontakt, av din AI-agent, en person, en automatisering eller en import. | `tag_name`, `channel`, `applied_by` |
| Tagg borttagen (`tag_removed`) | En tagg tas bort från en kontakt. | `tag_name`, `channel` |
| Skool-medlem gick med (`skool_member_joined`) | Någon går med i en Skool-community du äger eller driver, med deras profil, svar och matchningspoäng. | `group_id`, `create_contact` |
| Skool-medlem kvalificerad (`skool_member_qualified`) | En ny Skool-medlems svar når upp till eller över din tröskel. | `min_score` |

**Affärer**

| Utlösare (`kind`) | Aktiveras när | Inställningar |
|---|---|---|
| Affär skapad (`deal_created`) | En ny affär läggs till i en av dina pipelines. | `pipeline_id`, `stage_id` |
| Affärssteg ändrat (`deal_stage_changed`) | En affär flyttas till ett annat steg, med namn på steget den lämnade och det den gick in i. | `pipeline_id`, `to_stage_id`, `from_stage_id` |
| Affär uppdaterad (`deal_updated`) | Ett affärsfält ändras. | `field` |

**Möten**

| Utlösare (`kind`) | Aktiveras när | Inställningar |
|---|---|---|
| Möte bokat (`appointment_booked`) | Ett nytt möte bokas. | inga |
| Möte avbokat (`appointment_cancelled`) | Ett bokat möte avbokas. | inga |
| Möte ombokat (`appointment_rescheduled`) | Ett bokat möte flyttas till en annan tid, med den gamla tiden bredvid den nya. | `event_id` |
| Före ett möte (`appointment_upcoming`) | En inställd tid före varje bekräftat möte, för påminnelser. Upp till fem påminnelser per automatisering. | `offsets_minutes` |

**Uppgifter**

| Utlösare (`kind`) | Aktiveras när | Inställningar |
|---|---|---|
| Uppgift skapad (`task_created`) | En uppgift skapas. | `task_type` |
| Uppgift slutförd (`task_completed`) | En uppgift flyttas till ett slutfört steg. | inga |

**Konto**

| Utlösare (`kind`) | Aktiveras när | Inställningar |
|---|---|---|
| Lågt kreditsaldo (`low_credit_balance`) | Ditt kreditsaldo sjunker under din varningsgräns. | inga |
| Kanal ansluten (`channel_connected`) | En av dina kanaler har anslutits. | `channel` |
| Kanal frånkopplad (`channel_disconnected`) | En av dina kanaler bryts: utloggad, avlänkad eller avstängd. Ett WhatsApp Web-nummer som återansluter av sig självt räknas endast om det fortfarande är nere efter 30 minuter. | `channel` |

**Byrå**

| Utlösare (`kind`) | Aktiveras när | Inställningar |
|---|---|---|
| Underkonto skapat (`sub_account_created`) | Ett nytt klientkonto skapas, från din instrumentpanel, API:et eller din registreringssida. | inga |
| Underkontoaktivitet (`sub_account_event`) | Något händer på ett av dina klientkonton: krediter håller på att ta slut, en kanal ansluts, en plan ändras. | `event`, `threshold` |

**Allmänt och appar**

| Utlösare (`kind`) | Aktiveras när | Inställningar |
|---|---|---|
| Enligt schema (`schedule`) | Enligt ett cron-schema. | `cron`, `timezone` |
| Webhook (`webhook`) | Ett externt system anropar automatiseringens webhook-adress. | `webhook_secret` |
| AI-agentfunktion (`agent_function`) | Din AI-agent anropar denna automatisering som en funktion under en konversation. | `function_name`, `function_description`, `parameters`, `agent_ids`, `campaign_ids` |
| Nytt flödesobjekt (`rss`) | Ett nytt objekt visas i ett RSS- eller Atom-flöde. | `feed_url` |
| E-post mottaget (`email_received`) | Ett e-postmeddelande anländer till din anslutna brevlåda. | `from_contains`, `subject_contains` |
| Apphändelse (`app_event`) | Något händer i en ansluten app: en affärsmöjlighetsfas ändras, en betalning inkommer, ett formulär skickas in. | `toolkit`, `trigger_slug`, `connected_account_id`, `config` |
| Manuell körning (`manual`) | Endast när den startas manuellt. | inga |

En automatisering kan ha högst en utlösare av varje typ: `webhook`, `app_event`, `agent_function`, `rss`, `schedule`, `email_received`, `appointment_upcoming` och `contact_added`. En utlösare som aktiveras när en post skapas kan inte paras ihop med den åtgärd som skapar samma post, eftersom automatiseringen då skulle trigga sig själv.

För information om vad varje utlösare skickar vidare till efterföljande steg (`output_keys`) och den fullständiga listan över åtgärder med deras parametrar, läs `GET /automations/steps`. [Automationsguiden](../automations/automations.md#triggers) förklarar varje utlösare med byggverktygets terminologi.

---

## Fel

Varje fel har den vanliga formen `{ "success": false, "error_code": <status>, "error": "..." }`. En nekad graf lägger till `code` och `errors`: `errors` listar varje problem, en åtgärdbar mening vardera, och `error` är det första. Åtgärda exakt det som listas och skicka hela grafen igen. `code` är en av `invalid_graph`, `automation_graph_has_a_cycle`, `self_triggering_automation`, `no_trigger`, eller en annan kod från byggverktyget.

| Status | När |
|---|---|
| `400` | Grafen nekades, ett obligatoriskt fält saknas (`name` eller `graph` vid skapande, `folder_id` vid flytt), en uppdatering skickade inget att ändra, ett id är inte giltigt, eller ett mappnamn saknas, är tomt eller för långt (`code: "invalid_name"`). |
| `403` | Kontot har inte Automatiseringar; ett klientkontos plan inkluderar inte att skapa och redigera automatiseringar (endast skrivrättigheter); eller teammedlemmens **Automatiseringar**-åtkomst är för låg. |
| `404` | Ingen automatisering med det id:t på detta konto, ingen mapp med det id:t (`code: "folder_not_found"`), eller ett `sub_account_id` som inte är ett av dina klientkonton. |
| `409` | En mapp med det namnet finns redan (`code: "folder_name_taken"`). |
| `413` | Automatiseringen är större än den 1 MB som byggverktyget accepterar. Flytta stor kod eller data ut ur dess steg. |
| `422` | Byggverktyget avvisade begäran av en annan anledning. Kontrollera grafen mot `GET /automations/steps`; att skicka samma begäran igen hjälper inte. |
| `503` | Automatiseringstjänsten kunde inte nås. Försök igen om en stund. Vid skapande, lista dina automatiseringar först så att du inte skapar ett andra utkast. |

::: master-only
## Använda dessa slutpunkter via MCP

Varje slutpunkt på denna sida är också ett verktyg för en AI-assistent som du [ansluter via MCP](../integrations/connect-ai-clients.md), med samma regler: en ny automatisering är ett utkast tills den aktiveras, och en ändring i en körande automatisering sker omedelbart.

| Verktyg | Slutpunkt |
|---|---|
| `list_automations` | `GET /automations` |
| `get_automation` | `GET /automations/{automationId}` |
| `list_automation_steps` | `GET /automations/steps` |
| `create_automation` | `POST /automations` |
| `update_automation` | `PUT /automations/{automationId}` |
| `enable_automation` | `POST /automations/{automationId}/enable` |
| `disable_automation` | `POST /automations/{automationId}/disable` |
| `list_automation_runs` | `GET /automations/{automationId}/runs` |
| `list_automation_folders` | `GET /automations/folders` |
| `create_automation_folder` | `POST /automations/folders` |
| `rename_automation_folder` | `PUT /automations/folders/{folderId}` |
| `delete_automation_folder` | `DELETE /automations/folders/{folderId}` |
| `move_automation_to_folder` | `PUT /automations/{automationId}/folder` |
:::

---

## Nästa steg

- [Automatiseringar](../automations/automations.md): hur utlösare, steg, variabler och körningshistorik fungerar i byggverktyget.
- [API för byråer](../agency/api-for-agencies.md): bygg automatiseringar på ett klientkonto med `sub_account_id`.
- [API-referens](reference.md): den fullständiga interaktiva slutpunktsutforskaren.
