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

# Herramientas y webhooks

> Ofrece herramientas a los asistentes durante las llamadas y recibe los resultados después de cada llamada

## Herramientas durante la llamada

Los asistentes pueden actuar, no solo hablar. Hay dos mecanismos:

### Herramientas HTTP (generador de Flow)

[Los nodos de herramienta](/flow-builder/nodes#tool) llaman a tus endpoints HTTP en medio de la conversación. Tú defines un JSON Schema para los parámetros; el LLM los extrae de la conversación y tu endpoint devuelve los datos sobre los que habla el asistente. Admite ejecución asíncrona y frases de relleno para backends lentos.

### Servidores MCP en el asistente

Conecta **servidores MCP externos** a un asistente (URL, encabezados de autenticación opcionales, lista blanca de herramientas opcional): el asistente usa esas herramientas en vivo durante las llamadas. Esto te abre todo el ecosistema MCP (Zapier MCP, los servidores MCP internos de tu empresa) sin tener que escribir código de integración HTTP:

* El transporte se detecta automáticamente (HTTP en streaming o SSE).
* Una lista blanca vacía significa que se permiten *todas* las herramientas de ese servidor.
* Los resultados de herramientas demasiado grandes se truncan de forma segura.
* Un servidor MCP inalcanzable nunca bloquea una llamada: se omite y queda registrado como un evento de la llamada.

Restricción según el plan: el interruptor `connect_ai_mcp`, y los servidores MCP cuentan para `max_tools` junto con los nodos de herramienta del Flow.

### Herramientas reutilizables (las asignas una vez y las usas en todas partes)

Además de los nodos de herramienta del Flow, puedes definir **herramientas reutilizables** en la página *Herramientas* del panel: herramientas de API HTTP o servidores MCP externos, creados una sola vez y asignables a cualquier número de asistentes. En el editor del asistente, abre **Configuración → Herramientas** y activa las herramientas que este asistente puede usar; las asignaciones se guardan al instante.

Las mismas asignaciones están disponibles mediante programación:

* **API REST:** [`GET`/`POST /tools`, `GET`/`PATCH`/`DELETE /tools/{id}`](/api-reference/introduction), `GET /assistants/{id}/tools`, `PUT /assistants/{id}/tools` (cuerpo `{"tool_ids": [...]}` — el conjunto completo de destino).
* **MCP:** [`list_tools`, `get_tool`, `create_tool`, `update_tool`, `delete_tool`, `get_assistant_tools`, `set_assistant_tools`](/api/mcp#available-tools).

Los valores secretos de la configuración de las herramientas (encabezados de autenticación, tokens) nunca salen del servidor: todas las respuestas los enmascaran como `•••`.

## Webhooks después de la llamada

Cuando una llamada termina, la plataforma te envía el resultado — la forma estándar de alimentar CRMs y automatizaciones posteriores.

### `call.completed`

Se envía a dos tipos de receptores:

1. **URL de webhook por asistente** — configuración rápida, sin firma.
2. **Webhooks del espacio de trabajo** — gestionados de forma centralizada, **firmados** con HMAC-SHA256 sobre el cuerpo sin procesar:

```text theme={null}
X-Famulor-Signature: sha256=<hex digest>
```

Verifícalo calculando el HMAC del cuerpo sin procesar de la solicitud con tu secreto de webhook y comparando los resúmenes (digests).

### Contenido del payload

El payload incluye metadatos de la llamada (asistente, dirección, estado, duración, marcas de tiempo), la **transcripción**, las **variables del Flow** recopiladas (desde los [nodos de recopilación](/flow-builder/nodes#collect)), el contexto de Leads/Campaña para las llamadas de campaña, y enlaces a artefactos como la grabación.

<Tip>
  Responde `2xx` con rapidez (en pocos segundos) y procesa el resto de forma asíncrona. Las respuestas que no sean 2xx se consideran fallos de entrega.
</Tip>

## Consultar en lugar de recibir notificaciones

Todo lo que entrega un webhook también se puede obtener mediante la [API REST](/api-reference/introduction) (`GET /calls`, `GET /calls/{id}`) o las [herramientas MCP](/api/mcp#available-tools) (`list_calls`, `get_call`) — útil para trabajos de conciliación y recuperación de datos históricos.
