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

# Automation-Vorlage anwenden

> Erstelle eine Famulor-Automation aus einer fertigen Vorlage und prüfe sie mit einem echten Testlauf.

Dieser Endpunkt erstellt eine Automation aus einer Vorlage (siehe [Vorlagen auflisten](/de/api-reference/automations/list-templates)), führt einen echten Test aus und — bei Assistant-Event-Vorlagen — bindet die Automation nach bestandenem Test an den Assistant. Die Response hat dieselbe Envelope wie [Automation erstellen](/de/api-reference/automations/create).

<Warning>
  Vorlagen mit `side_effects: true` senden im Testlauf wirklich Nachrichten oder starten Anrufe — Anwenden erfordert `confirm_side_effects: true`, und der Test nutzt die echten Werte, die du geliefert hast. Nie eine Vorlage mit Beispiel- oder geratenen Werten anwenden.
</Warning>

### Path Parameters

<ParamField path="key" type="string" required>
  Der Vorlagen-Key (aus [Vorlagen auflisten](/de/api-reference/automations/list-templates)). Ein unbekannter Key liefert `404`.
</ParamField>

### Request Body

<ParamField body="params" type="object">
  Die Parameter der Vorlage als Key-Value-Paare — siehe die `params`-Liste der Vorlage. Fehlende Pflichtparameter liefern `422` (`missing_params`) mit genauer Auflistung. Max. 64 KB.
</ParamField>

<ParamField body="assistant_id" type="integer">
  Der Assistant, an den die resultierende Automation gebunden wird. Pflicht bei Vorlagen mit `requires_assistant: true`.
</ParamField>

<ParamField body="name" type="string">
  Ein eigener Name für die Automation (max. 255 Zeichen); Standard ist der Vorlagenname
</ParamField>

<ParamField body="confirm_side_effects" type="boolean">
  Pflicht (`true`) für Vorlagen mit `side_effects: true`
</ParamField>

### Response

Die Envelope von [Automation erstellen](/de/api-reference/automations/create): `automation_id`, `webhook_url` (bei webhook-getriggerten Vorlagen wie `lead-intake-webhook` und Mid-Call-Lookup; `null` bei Assistant-Event-Vorlagen), `status` (`active` / `active_untested` / `test_failed`), `test` (`run_status` + Ergebnisse pro Step), `response`, `binding`. Liefert `201`, wenn die Automation aktiv ist, `200`, wenn der Testlauf fehlschlug.

Parkt ein Testlauf an einem Delay-Step (z. B. `post-call-callback`) mit `run_status: "PAUSED"` — das ist Erfolg, kein Fehler: alle Steps vor dem Delay sind gelaufen, der Lauf setzt zur Zielzeit fort.

### Fehlercodes (422)

Harte Fehler liefern `{"message": "...", "error": "<code>", "params": ...}` und es wird nichts erstellt. Wichtige Codes:

| error                                                             | Bedeutung                                                                                                                                         |
| ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `missing_params`                                                  | Pflichtparameter fehlen — das `params`-Array der Response listet die vollständigen Specs.                                                         |
| `invalid_param_choice`                                            | Ein Parameter referenziert eine Ressource (z. B. Spreadsheet), die im verbundenen Konto nicht existiert — die Meldung listet die echten Optionen. |
| `needs_connection` / `needs_reconnection`                         | Eine benötigte Account-Connection fehlt oder ist kaputt — die Meldung enthält die genauen Schritte in der Famulor-App (einmalig).                 |
| `side_effects_require_confirmation`                               | Die Vorlage sendet echt — erneut mit `confirm_side_effects: true` versuchen.                                                                      |
| `assistant_required` / `assistant_not_found` / `binding_conflict` | Wie bei [Automation erstellen](/de/api-reference/automations/create).                                                                             |

<ResponseExample>
  ```json 201 Created (Test bestanden und gebunden) theme={null} theme={null}
  {
    "automation_id": "aB3xYz01MnOpQrStUvWxY",
    "webhook_url": null,
    "status": "active",
    "test": {
      "run_status": "SUCCEEDED",
      "steps": []
    },
    "response": null,
    "binding": {
      "type": "post_call",
      "assistant_id": 123,
      "bound": true
    }
  }
  ```

  ```json 422 Validation Error theme={null} theme={null}
  {
    "message": "These values are required: spreadsheet_id. Ask the user for them — never guess or reuse example values.",
    "error": "missing_params",
    "params": [
      {
        "key": "spreadsheet_id",
        "label": "Google Spreadsheet ID",
        "description": "The spreadsheet to append rows to.",
        "required": true,
        "example": "1AbCdEfGhIjKlMnOpQrStUvWxYz"
      }
    ]
  }
  ```

  ```json 404 Not Found theme={null} theme={null}
  {
    "message": "No template with that key — call the template list first.",
    "error": "template_not_found",
    "params": null
  }
  ```
</ResponseExample>

<Tip>
  Verwandte Seiten: [Vorlagen auflisten](/de/api-reference/automations/list-templates), [Automation erstellen](/de/api-reference/automations/create) und [Authentifizierung](/de/api-reference/authentication).
</Tip>
