> ## 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.

# Mid-call Action erstellen

> Erstelle eine neue Mid-call Action in Famulor per API. Gib deinen KI-Telefonassistenten neue Aktionen wie Buchung, CRM-Abfrage oder Webhook-Trigger.

Dieser Endpunkt ermöglicht es dir, eine neue Mid-call Action zu erstellen, die von deinen KI-Assistenten verwendet werden kann, um während Anrufen mit externen APIs zu interagieren.

### Body-Parameter

Die öffentliche API erstellt HTTP-Mid-call Actions. Automation-Platform-Mid-call Actions (die einen verknüpften Flow erzeugen) werden im Dashboard erstellt. Mid-call-Action-Werte unterstützen dynamische Variablen — verwende `{param}` für KI-extrahierte Parameter in der URL und `{{variable}}` (z. B. `{{customer_phone}}`) in der URL, in Header-Werten und in statischen Feld-Werten.

<ParamField body="name" type="string" required>
  Name der Mid-call Action — Buchstaben, Zahlen und Unterstriche, beginnend mit einem Buchstaben oder Unterstrich (max. 64 Zeichen, z. B. `get_weather`, `book_appointment`)
</ParamField>

<ParamField body="description" type="string" required>
  Detaillierte Erklärung, wann und wie die KI diese Mid-call Action verwenden soll (max. 255 Zeichen)
</ParamField>

<ParamField body="endpoint" type="string" required>
  Gültige URL des aufzurufenden API-Endpunkts (max. 2048 Zeichen)
</ParamField>

<ParamField body="method" type="string" required>
  HTTP-Methode: `GET`, `POST`, `PUT`, `PATCH` oder `DELETE`
</ParamField>

<ParamField body="body_format" type="string" optional>
  Kodierung des Request-Bodys für Schreibmethoden (POST/PUT/PATCH): `json` (Standard) oder `form` (`application/x-www-form-urlencoded`)
</ParamField>

<ParamField body="timeout" type="integer" optional>
  Request-Timeout in Sekunden (1-30, Standard: 10)
</ParamField>

<ParamField body="headers" type="array" optional>
  HTTP-Header, die mit der Anfrage gesendet werden

  <Expandable title="Header-Eigenschaften">
    <ParamField body="name" type="string" required>
      Header-Name
    </ParamField>

    <ParamField body="value" type="string" required>
      Header-Wert (max. 2048 Zeichen; unterstützt `{{variable}}`-Substitution)
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="static_fields" type="array" optional>
  Feste Schlüssel/Wert-Paare, die immer mit der Anfrage gesendet werden (die KI ändert sie nie)

  <Expandable title="static_fields-Eigenschaften">
    <ParamField body="key" type="string" required>
      Feld-Schlüssel (max. 64 Zeichen)
    </ParamField>

    <ParamField body="value" type="string" optional>
      Feld-Wert (max. 2048 Zeichen; unterstützt `{{variable}}`-Substitution)
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="schema" type="array" optional>
  Parameter, die die KI aus der Unterhaltung extrahiert und an den Endpunkt sendet

  <Expandable title="Schema-Eigenschaften">
    <ParamField body="name" type="string" required>
      Parameter-Name (1-64 Zeichen, muss mit einem Buchstaben oder Unterstrich beginnen, kann Buchstaben, Zahlen und Unterstriche enthalten)
    </ParamField>

    <ParamField body="type" type="string" required>
      Parameter-Typ: `string`, `number`, `float` oder `boolean`
    </ParamField>

    <ParamField body="description" type="string" required>
      Beschreibung, um der KI zu helfen, diesen Parameter zu extrahieren (3-255 Zeichen)
    </ParamField>

    <ParamField body="required" type="boolean" optional>
      Ob die KI diesen Parameter erfassen muss. Optionale Parameter werden nur gesendet, wenn ein Wert erfasst wurde. Standard: `false`.
    </ParamField>
  </Expandable>
</ParamField>

### Antwortfelder

<ResponseField name="message" type="string">
  Erfolgsmeldung
</ResponseField>

<ResponseField name="data" type="object">
  Das erstellte Mid-call-Action-Objekt

  <Expandable title="Daten-Eigenschaften">
    <ResponseField name="id" type="integer">
      Die eindeutige Kennung der Mid-call Action
    </ResponseField>

    <ResponseField name="name" type="string">
      Der Name der Mid-call Action
    </ResponseField>

    <ResponseField name="description" type="string">
      Beschreibung der Mid-call Action
    </ResponseField>

    <ResponseField name="type" type="string">
      Mid-call-Action-Typ: `http` oder `automation`
    </ResponseField>

    <ResponseField name="endpoint" type="string">
      API-Endpunkt-URL
    </ResponseField>

    <ResponseField name="method" type="string">
      HTTP-Methode
    </ResponseField>

    <ResponseField name="body_format" type="string">
      Request-Body-Kodierung: `json` oder `form`
    </ResponseField>

    <ResponseField name="timeout" type="integer">
      Request-Timeout in Sekunden
    </ResponseField>

    <ResponseField name="headers" type="array">
      HTTP-Header
    </ResponseField>

    <ResponseField name="static_fields" type="array">
      Feste Schlüssel/Wert-Paare, die immer mit der Anfrage gesendet werden
    </ResponseField>

    <ResponseField name="schema" type="array">
      Parameter-Schema
    </ResponseField>

    <ResponseField name="created_at" type="string">
      ISO-8601-Zeitstempel
    </ResponseField>

    <ResponseField name="updated_at" type="string">
      ISO-8601-Zeitstempel
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json 201 Created theme={null}
  {
    "message": "Tool created successfully",
    "data": {
      "id": 1,
      "name": "send_notification",
      "description": "Use this tool to send a notification to the customer. Call this when customer requests updates.",
      "type": "http",
      "endpoint": "https://api.yourcompany.com/notifications/send",
      "method": "POST",
      "body_format": "json",
      "timeout": 15,
      "headers": [
        {
          "name": "Content-Type",
          "value": "application/json"
        }
      ],
      "static_fields": [
        {
          "key": "caller",
          "value": "{{customer_phone}}"
        }
      ],
      "schema": [
        {
          "name": "message",
          "type": "string",
          "description": "The notification message to send",
          "required": true
        },
        {
          "name": "send_sms",
          "type": "boolean",
          "description": "Whether to also send SMS notification",
          "required": false
        }
      ],
      "created_at": "2025-10-10T12:00:00.000000Z",
      "updated_at": "2025-10-10T12:00:00.000000Z"
    }
  }
  ```

  ```json 422 Validation Error theme={null}
  {
    "message": "The name field format is invalid.",
    "errors": {
      "name": [
        "Tool name must contain only letters, numbers and underscores, and start with a letter or underscore."
      ]
    }
  }
  ```

  ```json 422 Plan Limit Reached theme={null}
  {
    "message": "You have reached your plan limit of 5 mid call tools. Please upgrade your plan to create more tools."
  }
  ```
</ResponseExample>

### Mid-call Actions Assistenten hinzufügen

Nach dem Erstellen einer Mid-call Action musst du sie einem Assistenten zuweisen, um sie während Anrufen zu verwenden. Zuweisungen werden über die Assistenten-API verwaltet:

* **[Assistent erstellen](/de/api-reference/assistants/create)** — Verwende den `tool_ids`-Parameter, um Mid-call Actions beim Erstellen eines Assistenten zuzuweisen
* **[Assistent aktualisieren](/de/api-reference/assistants/update)** — Verwende den `tool_ids`-Parameter, um Mid-call Actions bei einem bestehenden Assistenten hinzuzufügen, zu entfernen oder zu ersetzen

<Tip>
  Statt einzelner HTTP-Aktionen ein ganzes Toolset auf einmal? Externen **MCP-Server** verbinden — Tools werden automatisch erkannt. Siehe [MCP-Server](/de/platform/mcp-servers).
</Tip>
