# Llamar con un agente desde otras apps

## ¿Qué es?

Cada agente puede tener un **enlace propio**. Cuando tu CRM u otra app usa ese enlace con el teléfono de una persona:

* un **agente de voz** la llama;
* un **agente de WhatsApp** le escribe con una plantilla aprobada y sigue la conversación cuando responde.

Sirve para automatizar sin programar. Por ejemplo: «cuando un lead pasa a la etapa *Llamar* de mi CRM, que lo llame el agente», o «cuando alguien completa el formulario de mi web, que el agente lo contacte».

Cuándo y a quién contactar lo decides en tu CRM o tu app: el enlace solo recibe el pedido y el agente hace el contacto.

***

## Cómo activarlo

1. Abre la ficha del agente.
2. Busca la sección **Llamar desde otras apps** (en los agentes de WhatsApp, **Escribir desde otras apps**).
3. Pulsa **Activar el enlace**.
4. Copia el **Enlace del agente** y pégalo en tu app.

> 🔒 El enlace es secreto: quien lo tenga puede hacer que el agente llame. Si se filtró, pulsa **Cambiar enlace**: el anterior deja de funcionar y tienes que pegar el nuevo en tus apps.

***

## Cómo enviar el teléfono y el nombre

### Si tu CRM está conectado en Integraciones (Kommo)

No hace falta agregar nada: pega el enlace tal cual en la automatización de tu CRM. Anunzi busca el teléfono y el nombre del contacto en tu cuenta conectada.

**En Kommo:** en el embudo de Leads, configura las automatizaciones de la etapa que quieras (por ejemplo, «Llamar») y agrega la acción de **webhook** con el enlace del agente. Cada lead que entre a esa etapa recibe la llamada del agente. Para eso, Kommo tiene que estar conectado en **Integraciones → Kommo** (ver [Kommo](kommo.md)).

### Con cualquier otra app

Usa la acción de **webhook** o **solicitud HTTP** de tu app (automatizaciones de tu CRM, Zapier, Make, un formulario) y agrega al final del enlace los datos de la persona, con el código de país en el teléfono:

```
https://tu-panel/api/agent_trigger.php?k=…&telefono=+5491100000000&nombre=Ana
```

En tu app, reemplaza el teléfono y el nombre por los datos de cada contacto (por ejemplo, `{{contact.phone}}`).

También puedes enviar los datos por **POST**, como formulario o en JSON:

```json
{ "telefono": "+5491100000000", "nombre": "Ana", "motivo": "Pidió una demo" }
```

* El teléfono se reconoce en un campo `telefono`, `phone`, `to`, `mobile` o `celular`, aunque venga dentro de otros datos.
* **Los demás datos llegan al agente como variables.** En el ejemplo, el agente puede usar `{{nombre}}` y `{{motivo}}` en sus instrucciones o en su mensaje de apertura.

> 💡 Para probarlo, copia el ejemplo de la ficha, pon tu teléfono y ábrelo en el navegador: el agente te llama en el momento.

***

## Agentes de WhatsApp

WhatsApp exige una **plantilla aprobada** para escribirle primero a una persona. En la sección del agente:

1. Elige la **Plantilla de WhatsApp**.
2. Completa sus variables (`{{1}}`, `{{2}}`…) con texto fijo o con datos del pedido entre llaves, por ejemplo `{nombre}`.
3. Pulsa **Guardar**.

Cuando la persona responde, el agente sigue la conversación y sabe qué mensaje se le envió.

***

## Límites y cola

| Opción | Qué hace |
| --- | --- |
| **Máximo por día** | Cuántos contactos hace el agente por día con el enlace (300 por defecto). Lo que pasa del máximo sale al día siguiente. |
| **Código de país** | Se agrega a los teléfonos que llegan sin él. |

Además:

* El mismo teléfono **no se contacta dos veces en 30 minutos**: si tu app avisa dos veces, el segundo pedido queda como duplicado.
* Si no hay saldo o todas las líneas están ocupadas, el pedido **espera en la cola** y sale en cuanto se puede. Un pedido que no pudo salir en 72 horas se descarta.
* Si desmarcas **Enlace activo**, los pedidos esperan hasta que lo reactives.
* Cada llamada o mensaje tiene el **costo normal** de una llamada saliente o de una plantilla de WhatsApp.

***

## Últimos pedidos

Al final de la sección ves los últimos pedidos que llegaron, con su estado:

| Estado | Significa |
| --- | --- |
| **Llamada lanzada** / **Enviado** | El agente hizo el contacto. |
| **En cola** | Está esperando (límite, saldo o líneas ocupadas). El detalle dice por qué. |
| **Duplicado** | El mismo teléfono ya se pidió hace menos de 30 minutos. |
| **Rechazado** | El pedido no traía un teléfono válido, o el contacto del CRM no tiene teléfono. |
| **Falló** | No se pudo hacer el contacto después de varios intentos. El detalle dice por qué. |

Así puedes revisar si tu CRM está avisando bien.

***

## Preguntas frecuentes

**¿El agente necesita un número?**\
Sí. Un agente de voz necesita un número asignado para llamar, y uno de WhatsApp, su número de WhatsApp conectado.

**¿Puedo elegir en qué horario llama?**\
El enlace contacta en el momento en que llega el pedido. El horario lo defines en la automatización de tu CRM o tu app.

**¿Qué pasa si mi app envía el teléfono sin código de país?**\
Se completa con el **Código de país** de la sección (por defecto, el del número del agente). Para evitar errores, conviene guardar los teléfonos con su código de país.

**¿Se registra la llamada en mi CRM?**\
Si tu CRM está conectado en Integraciones, sí, como cualquier otra llamada del agente (por ejemplo, en Kommo queda en el historial del lead con su grabación).
