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

# Créer une Mid-call Action

> Crée une nouvelle Mid-call Action pour l'intégration avec un assistant IA

<Warning>
  **API Famulor 1.0 (héritée).** Cette page concerne uniquement Famulor 1.0 (`app.famulor.de`) et est conservée pour la compatibilité. Pour la plateforme actuelle, consultez la [référence API Famulor 2.0](/fr/api-reference/introduction).
</Warning>

Ce point de terminaison vous permet de créer une nouvelle Mid-call Action que vos assistants IA peuvent utiliser pour interagir avec des API externes pendant les appels.

### Paramètres du corps

L'API publique crée des Mid-call Actions HTTP. Les Mid-call Actions de l'Automation Platform (qui génèrent un flux lié) sont créées depuis le tableau de bord. Les valeurs des Mid-call Actions prennent en charge les variables dynamiques — utilisez `{param}` pour les paramètres extraits par l'IA dans l'URL, et `{{variable}}` (par ex. `{{customer_phone}}`) dans l'URL, les valeurs d'en-tête et les valeurs de champs statiques.

<ParamField body="name" type="string" required>
  Nom de la Mid-call Action — lettres, chiffres et underscores, commençant par une lettre ou un underscore (64 caractères max., par ex. `get_weather`, `book_appointment`)
</ParamField>

<ParamField body="description" type="string" required>
  Explication détaillée du moment et de la manière dont l'IA doit utiliser cette Mid-call Action (255 caractères max.)
</ParamField>

<ParamField body="endpoint" type="string" required>
  URL valide du point de terminaison de l'API à appeler (2048 caractères max.)
</ParamField>

<ParamField body="method" type="string" required>
  Méthode HTTP : `GET`, `POST`, `PUT`, `PATCH` ou `DELETE`
</ParamField>

<ParamField body="body_format" type="string" optional>
  Comment le corps de la requête est encodé pour les méthodes d'écriture (POST/PUT/PATCH) : `json` (par défaut) ou `form` (`application/x-www-form-urlencoded`)
</ParamField>

<ParamField body="timeout" type="integer" optional>
  Délai d'expiration de la requête en secondes (1-30, par défaut : 10)
</ParamField>

<ParamField body="headers" type="array" optional>
  En-têtes HTTP à envoyer avec la requête

  <Expandable title="Propriétés de headers">
    <ParamField body="name" type="string" required>
      Nom de l'en-tête
    </ParamField>

    <ParamField body="value" type="string" required>
      Valeur de l'en-tête (2048 caractères max. ; prend en charge la substitution `{{variable}}`)
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="static_fields" type="array" optional>
  Paires clé/valeur fixes toujours envoyées avec la requête (l'IA ne les modifie jamais)

  <Expandable title="Propriétés de static_fields">
    <ParamField body="key" type="string" required>
      Clé du champ (64 caractères max.)
    </ParamField>

    <ParamField body="value" type="string" optional>
      Valeur du champ (2048 caractères max. ; prend en charge la substitution `{{variable}}`)
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="schema" type="array" optional>
  Paramètres que l'IA extraira de la conversation et enverra au point de terminaison

  <Expandable title="Propriétés de schema">
    <ParamField body="name" type="string" required>
      Nom du paramètre (1 à 64 caractères, doit commencer par une lettre ou un underscore, peut contenir des lettres, des chiffres et des underscores)
    </ParamField>

    <ParamField body="type" type="string" required>
      Type du paramètre : `string`, `number`, `float` ou `boolean`
    </ParamField>

    <ParamField body="description" type="string" required>
      Description pour aider l'IA à comprendre comment extraire ce paramètre (3 à 255 caractères)
    </ParamField>

    <ParamField body="required" type="boolean" optional>
      Indique si l'IA doit obligatoirement recueillir ce paramètre. Les paramètres optionnels ne sont envoyés que lorsqu'une valeur a été recueillie. Par défaut : `false`.
    </ParamField>
  </Expandable>
</ParamField>

### Champs de réponse

<ResponseField name="message" type="string">
  Message de succès
</ResponseField>

<ResponseField name="data" type="object">
  L'objet Mid-call Action créé

  <Expandable title="Propriétés de data">
    <ResponseField name="id" type="integer">
      L'identifiant unique de la Mid-call Action
    </ResponseField>

    <ResponseField name="name" type="string">
      Le nom de la Mid-call Action
    </ResponseField>

    <ResponseField name="description" type="string">
      Description de la Mid-call Action
    </ResponseField>

    <ResponseField name="type" type="string">
      Type de la Mid-call Action : `http` ou `automation`
    </ResponseField>

    <ResponseField name="endpoint" type="string">
      URL du point de terminaison de l'API
    </ResponseField>

    <ResponseField name="method" type="string">
      Méthode HTTP
    </ResponseField>

    <ResponseField name="body_format" type="string">
      Encodage du corps de la requête : `json` ou `form`
    </ResponseField>

    <ResponseField name="timeout" type="integer">
      Délai d'expiration de la requête en secondes
    </ResponseField>

    <ResponseField name="headers" type="array">
      En-têtes HTTP
    </ResponseField>

    <ResponseField name="static_fields" type="array">
      Paires clé/valeur fixes toujours envoyées avec la requête
    </ResponseField>

    <ResponseField name="schema" type="array">
      Schéma des paramètres
    </ResponseField>

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

    <ResponseField name="updated_at" type="string">
      Horodatage ISO 8601
    </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>

### Associer des Mid-call Actions à des assistants

Une fois une Mid-call Action créée, associez-la à un assistant pour l'utiliser pendant les appels. Gérez les attributions via l'API Assistant :

* **[Créer un assistant](/fr/api-v1/assistants/create)** — Utilisez le paramètre `tool_ids` pour associer des Mid-call Actions lors de la création d'un assistant
* **[Mettre à jour un assistant](/fr/api-v1/assistants/update)** — Utilisez le paramètre `tool_ids` pour ajouter, retirer ou remplacer des Mid-call Actions sur un assistant existant

<Tip>
  Besoin de tout un ensemble d'outils plutôt que de créer des actions HTTP une par une ? Connectez un **serveur MCP** externe — les outils sont détectés automatiquement. Voir [Serveurs MCP](/fr/api/tools-and-webhooks).
</Tip>
