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

# Crear acción durante la llamada

> Crea una nueva acción durante la llamada para la integración con el asistente de IA

<Warning>
  **API de Famulor 1.0 (legado).** Esta página se aplica únicamente a Famulor 1.0 (`app.famulor.de`) y se conserva por compatibilidad. Para la plataforma actual, usa la [referencia de la API de Famulor 2.0](/es/api-reference/introduction).
</Warning>

Este endpoint te permite crear una nueva acción durante la llamada que tus asistentes de IA pueden usar para interactuar con APIs externas durante las llamadas.

### Parámetros del cuerpo

La API pública crea acciones durante la llamada de tipo HTTP. Las acciones durante la llamada de la plataforma de automatización (que generan un flujo vinculado) se crean desde el panel. Los valores de las acciones durante la llamada admiten variables dinámicas: usa `{param}` para los parámetros extraídos por la IA en la URL, y `{{variable}}` (p. ej., `{{customer_phone}}`) en la URL, en los valores de encabezado y en los valores de los campos estáticos.

<ParamField body="name" type="string" required>
  Nombre de la acción durante la llamada: letras, números y guiones bajos, que empiece por una letra o un guion bajo (máx. 64 caracteres, p. ej., `get_weather`, `book_appointment`)
</ParamField>

<ParamField body="description" type="string" required>
  Explicación detallada de cuándo y cómo debe usar la IA esta acción durante la llamada (máx. 255 caracteres)
</ParamField>

<ParamField body="endpoint" type="string" required>
  URL válida del endpoint de la API a llamar (máx. 2048 caracteres)
</ParamField>

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

<ParamField body="body_format" type="string" optional>
  Cómo se codifica el cuerpo de la solicitud para los métodos de escritura (POST/PUT/PATCH): `json` (predeterminado) o `form` (`application/x-www-form-urlencoded`)
</ParamField>

<ParamField body="timeout" type="integer" optional>
  Tiempo de espera de la solicitud en segundos (1-30, predeterminado: 10)
</ParamField>

<ParamField body="headers" type="array" optional>
  Encabezados HTTP que se enviarán con la solicitud

  <Expandable title="Propiedades de headers">
    <ParamField body="name" type="string" required>
      Nombre del encabezado
    </ParamField>

    <ParamField body="value" type="string" required>
      Valor del encabezado (máx. 2048 caracteres; admite sustitución de `{{variable}}`)
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="static_fields" type="array" optional>
  Pares clave/valor fijos que siempre se envían con la solicitud (la IA nunca los cambia)

  <Expandable title="Propiedades de static_fields">
    <ParamField body="key" type="string" required>
      Clave del campo (máx. 64 caracteres)
    </ParamField>

    <ParamField body="value" type="string" optional>
      Valor del campo (máx. 2048 caracteres; admite sustitución de `{{variable}}`)
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="schema" type="array" optional>
  Parámetros que la IA extraerá de la conversación y enviará al endpoint

  <Expandable title="Propiedades de schema">
    <ParamField body="name" type="string" required>
      Nombre del parámetro (1-64 caracteres, debe empezar por una letra o un guion bajo, puede contener letras, números y guiones bajos)
    </ParamField>

    <ParamField body="type" type="string" required>
      Tipo de parámetro: `string`, `number`, `float` o `boolean`
    </ParamField>

    <ParamField body="description" type="string" required>
      Descripción que ayuda a la IA a entender cómo extraer este parámetro (3-255 caracteres)
    </ParamField>

    <ParamField body="required" type="boolean" optional>
      Indica si la IA debe recopilar este parámetro obligatoriamente. Los parámetros opcionales solo se envían cuando se recopiló un valor. El valor predeterminado es `false`.
    </ParamField>
  </Expandable>
</ParamField>

### Campos de respuesta

<ResponseField name="message" type="string">
  Mensaje de éxito
</ResponseField>

<ResponseField name="data" type="object">
  El objeto de la acción durante la llamada creada

  <Expandable title="Propiedades de data">
    <ResponseField name="id" type="integer">
      El identificador único de la acción durante la llamada
    </ResponseField>

    <ResponseField name="name" type="string">
      El nombre de la acción durante la llamada
    </ResponseField>

    <ResponseField name="description" type="string">
      Descripción de la acción durante la llamada
    </ResponseField>

    <ResponseField name="type" type="string">
      Tipo de acción durante la llamada: `http` o `automation`
    </ResponseField>

    <ResponseField name="endpoint" type="string">
      URL del endpoint de la API
    </ResponseField>

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

    <ResponseField name="body_format" type="string">
      Codificación del cuerpo de la solicitud: `json` o `form`
    </ResponseField>

    <ResponseField name="timeout" type="integer">
      Tiempo de espera de la solicitud en segundos
    </ResponseField>

    <ResponseField name="headers" type="array">
      Encabezados HTTP
    </ResponseField>

    <ResponseField name="static_fields" type="array">
      Pares clave/valor fijos que siempre se envían con la solicitud
    </ResponseField>

    <ResponseField name="schema" type="array">
      Esquema de parámetros
    </ResponseField>

    <ResponseField name="created_at" type="string">
      Marca de tiempo ISO 8601
    </ResponseField>

    <ResponseField name="updated_at" type="string">
      Marca de tiempo 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>

### Vincular acciones durante la llamada a los asistentes

Después de crear una acción durante la llamada, vincúlala a un asistente para usarla durante las llamadas. Gestiona las asignaciones a través de la API de asistentes:

* **[Crear asistente](/es/api-v1/assistants/create)** — Usa el parámetro `tool_ids` para vincular acciones durante la llamada al crear un asistente
* **[Actualizar asistente](/es/api-v1/assistants/update)** — Usa el parámetro `tool_ids` para añadir, quitar o reemplazar acciones durante la llamada en un asistente existente

<Tip>
  ¿Necesitas todo un conjunto de herramientas en lugar de crear acciones HTTP una por una? Conecta un **servidor MCP** externo: las herramientas se descubren automáticamente. Consulta [Servidores MCP](/es/api/tools-and-webhooks).
</Tip>
