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

# Acciones de automatizaciones

> Qué puede hacer una automatización y cómo ordenar acciones de forma segura

# Acciones de automatizaciones

Las acciones definen **qué hace** Whaapy cuando el disparador de una automatización coincide.

Las acciones se ejecutan en orden. Ese orden importa: no es lo mismo asignar un agente antes de enviar un mensaje que hacerlo después.

***

## Acciones disponibles

| Acción              | Para qué sirve                                  |
| ------------------- | ----------------------------------------------- |
| `add_tag`           | Agregar una etiqueta al contacto                |
| `remove_tag`        | Quitar una etiqueta                             |
| `set_custom_field`  | Guardar un valor en un campo personalizado      |
| `move_funnel_stage` | Mover el contacto a una etapa del funnel        |
| `send_message`      | Enviar texto, botones o listas                  |
| `send_template`     | Enviar un template aprobado de WhatsApp         |
| `toggle_ai`         | Activar, apagar o pausar la IA                  |
| `http_request`      | Llamar un endpoint externo                      |
| `assign_agent`      | Asignar la conversación a un miembro del equipo |
| `update_contact`    | Mapear valores hacia campos del contacto        |

***

## Orden recomendado

Para una automatización comercial típica:

<Steps>
  <Step title="Clasificar">
    Agrega tag o actualiza custom fields.
  </Step>

  <Step title="Mover">
    Cambia etapa del funnel si aplica.
  </Step>

  <Step title="Asignar">
    Asigna agente o equipo responsable.
  </Step>

  <Step title="Responder">
    Envía mensaje o template.
  </Step>

  <Step title="Coordinar IA">
    Pausa o apaga la IA si el flujo ya fue cubierto.
  </Step>

  <Step title="Notificar externo">
    Envía HTTP request o deja que n8n tome el flujo si necesitas orquestación compleja.
  </Step>
</Steps>

No es obligatorio seguir este orden, pero ayuda a evitar estados incompletos.

***

## Mensajes

`send_message` sirve para responder dentro de la ventana de 24 horas de WhatsApp.

Puede ser:

* texto simple
* botones
* lista

Ejemplo:

```text theme={null}
¡Gracias por escribirnos! Ya asignamos tu solicitud al equipo correcto.
```

<Warning>
  Si el cliente está fuera de la ventana de 24 horas, usa `send_template` en lugar de mensaje libre.
</Warning>

***

## Templates

`send_template` usa templates aprobados por Meta.

Úsalo para:

* primer contacto
* mensajes fuera de ventana de 24 horas
* confirmaciones
* recordatorios
* seguimiento comercial

Puedes llenar variables del template con valores estáticos o variables de Whaapy.

Ver [Variables](/guides/automations/variables).

***

## Control de IA

`toggle_ai` permite coordinar automatizaciones con el agente IA.

Modos típicos:

| Modo        | Cuándo usarlo                                                    |
| ----------- | ---------------------------------------------------------------- |
| Encender IA | Retomar automatización conversacional después de un flujo manual |
| Apagar IA   | Casos que deben quedar en atención humana                        |
| Pausar IA   | Evitar doble respuesta por un tiempo                             |

Ver [Automations e IA](/guides/automations/ai-handoff).

***

## HTTP request

`http_request` llama un endpoint externo.

Úsalo para:

* enviar lead a CRM
* notificar Slack o Discord
* disparar un webhook de n8n
* crear ticket en helpdesk
* avisar a un sistema propio

Buenas prácticas:

* usa HTTPS
* define timeout corto
* envía solo datos necesarios
* prueba el webhook antes de activar
* no dependas de respuestas lentas

<Tip>
  Si el flujo externo tiene muchos pasos, usa [n8n](/integrations/n8n) y llama un webhook de n8n desde la automatización.
</Tip>

***

## Asignar agente

`assign_agent` decide quién debe atender la conversación.

Modos:

| Modo           | Cómo funciona                        |
| -------------- | ------------------------------------ |
| `fixed`        | Siempre asigna al mismo agente       |
| `round_robin`  | Rota entre agentes                   |
| `least_loaded` | Elige quien tiene menos carga activa |
| `random`       | Elige uno al azar del pool           |

Usa fallback si el agente o pool no está disponible.

***

## Actualizar contacto

`update_contact` sirve para mapear datos hacia el contacto.

Es especialmente útil con Meta Lead Ads:

```text theme={null}
{{lead.field.email}} -> email
{{lead.field.company}} -> company
{{lead.field.city}} -> city
```

Puedes usar campos nativos o custom fields.

Ver [Meta Lead Ads](/guides/automations/meta-leads).

***

## Acciones seguras vs riesgosas

| Acción           | Riesgo     | Recomendación                            |
| ---------------- | ---------- | ---------------------------------------- |
| Agregar tag      | Bajo       | Buena primera acción                     |
| Mover etapa      | Medio      | Asegúrate de que el trigger sea correcto |
| Enviar mensaje   | Medio      | Evita dobles respuestas con IA           |
| Enviar template  | Medio      | Revisa variables y aprobación            |
| HTTP request     | Medio/alto | Prueba y limita payload                  |
| Asignar agente   | Medio      | Usa fallback                             |
| Pausar/apagar IA | Medio      | Documenta cuándo se reactiva             |

***

## Errores comunes

| Error                             | Qué pasa                | Cómo evitarlo                        |
| --------------------------------- | ----------------------- | ------------------------------------ |
| Muchas acciones en una sola regla | Difícil de depurar      | Divide en reglas claras              |
| Enviar mensaje y dejar IA activa  | Doble respuesta         | Usa `Omitir IA` o `toggle_ai`        |
| HTTP request sin prueba           | Fallos silenciosos      | Usa test webhook                     |
| Template con variable vacía       | Mensaje raro o inválido | Usa variables con fallback operativo |
| Asignar sin fallback              | Conversación sin dueño  | Define agente alterno                |

***

## Siguiente paso

Aprende a insertar datos dinámicos en [Variables](/guides/automations/variables).
