Automatizaciones
Descripción General
Las automatizaciones te permiten definir reglas del tipo "cuando ocurre X, haz Y" para tus cotizaciones. En lugar de realizar acciones manuales repetitivas, configura una automatización una vez y déjala trabajar.
Las automatizaciones son una funcionalidad del plan PRO.
Automatizaciones vs Webhooks
| Automatizaciones | Webhooks | |
|---|---|---|
| Propósito | Ejecutar acciones internas (email, cambiar estado, notificar) | Notificar a sistemas externos |
| Condiciones | Filtros avanzados por campo (total > 5000, cliente contiene "Acme") | No — se disparan siempre |
| Acciones | 6 tipos: email, notificación, cambiar estado, etiqueta, recordatorio, webhook | Solo enviar HTTP POST |
| Configuración | Desde la UI de Cotizera | API o UI |
| Retraso | Sí — ejecutar N minutos después | No — inmediato |
Usa la acción fire_webhook en automatizaciones para combinar lo mejor de ambos: condiciones avanzadas + notificación a servicios externos.
Crear tu Primera Automatización
Vamos a crear una automatización que envía un correo al cliente cuando se envía una cotización mayor a $5,000.
Paso 1: Ir a Automatizaciones
Navega a Configuración → Automatizaciones y haz clic en "Crear automatización".
Paso 2: Configurar el Trigger
Selecciona el evento "Cotización enviada" (QUOTE_SENT). La automatización se ejecutará cada vez que envíes una cotización.
Paso 3: Agregar Condiciones
Agrega una condición para filtrar solo cotizaciones grandes:
- Campo: Total
- Operador: Mayor que
- Valor: 5000
Puedes agregar más condiciones — todas deben cumplirse (lógica AND).
Paso 4: Configurar la Acción
Selecciona la acción "Enviar correo":
- Destinatario: Cliente
- Asunto: "Tu cotización está lista"
- Mensaje: "Gracias por tu interés. Hemos preparado una cotización personalizada."
Paso 5: Guardar
Haz clic en "Crear". La automatización está activa y se ejecutará la próxima vez que envíes una cotización que cumpla las condiciones.
Condiciones Avanzadas
Las condiciones te permiten filtrar con precisión cuándo se ejecuta una automatización. Los campos están organizados en tres grupos.
Campos de Cotización
Evalúan propiedades de la cotización: total, subtotal, impuesto, moneda, estado, costo de envío, número de veces vista y notas.
Ejemplo: Solo ejecutar cuando el total es mayor a $10,000:
{ "field": "total", "operator": "gt", "value": 10000 }Campos de Cliente
Evalúan datos del cliente asociado: nombre, empresa, email y teléfono.
Ejemplo: Solo ejecutar cuando el cliente tiene empresa registrada:
{ "field": "client.companyName", "operator": "is_not_empty" }Campos de Producto
Evalúan los productos incluidos en la cotización. Usan la lógica "algún producto coincide" — la condición se cumple si al menos un producto de la cotización coincide.
Ejemplo: Ejecutar cuando algún producto se llama "Servicio premium":
{ "field": "items.productName", "operator": "contains", "value": "premium" }Ejemplo: Ejecutar cuando algún producto tiene precio mayor a $5,000:
{ "field": "items.unitPrice", "operator": "gt", "value": 5000 }Operadores por tipo de campo
| Tipo de campo | Operadores disponibles |
|---|---|
| Selección (estado, moneda) | es igual a, no es igual a |
| Número (total, precio, cantidad) | igual, diferente, mayor, menor, mayor o igual, menor o igual |
| Texto (nombre, email, notas) | igual, diferente, contiene, comienza con, está vacío, no está vacío |
Los operadores is_empty y is_not_empty no requieren valor — simplemente verifican si el campo tiene contenido o no.
Acción: Disparar Webhook
La acción fire_webhook envía un POST con los datos de la cotización a cualquier URL externa. Es la forma más flexible de integrar Cotizera con servicios externos.
Casos de uso
- Zapier: Envía datos a un Zap usando una URL de webhook de Zapier
- Slack: Publica en un canal usando un Incoming Webhook de Slack
- CRM: Sincroniza cotizaciones con tu sistema de gestión
- Cualquier API: Envía datos a cualquier endpoint que acepte POST
Configuración
- URL: La dirección del webhook (ej:
https://hooks.zapier.com/hooks/catch/...) - Headers (opcional): Headers HTTP adicionales como
Authorizationpara autenticación - Incluir productos: Incluir o excluir los productos de la cotización en el payload
Payload enviado
El webhook recibe un JSON con el evento, timestamp y datos completos de la cotización incluyendo cliente y productos (si se habilitó).
El webhook tiene un timeout de 5 segundos. Si tu servidor no responde a tiempo, la ejecución se marca como fallida en el historial.
Retraso en la Ejecución
Puedes configurar un retraso en minutos antes de que se ejecuten las acciones. Esto es útil para:
- Dar tiempo al cliente: Enviar un correo de seguimiento 24 horas después de enviar la cotización (
delayMinutes: 1440) - Evitar spam: Esperar 30 minutos antes de notificar al equipo sobre una cotización vista (
delayMinutes: 30) - Seguimiento escalonado: Crear múltiples automatizaciones con diferentes retrasos para el mismo evento
Historial de Ejecuciones
Cada automatización mantiene un registro de todas sus ejecuciones. Puedes ver el historial haciendo clic en "Historial" en la tarjeta de la automatización.
Cada entrada muestra:
- Estado: Disparado, Completado o Fallido
- Cotización: ID de la cotización que disparó la ejecución
- Tiempo: Cuándo se ejecutó
- Error: Mensaje de error (solo si falló)
Ejemplos Prácticos
Notificar al equipo en Slack cuando se acepta una cotización grande
- Trigger: Cotización aceptada
- Condición: Total > $10,000
- Acción: fire_webhook → URL del Incoming Webhook de Slack
Etiquetar cotizaciones de clientes VIP
- Trigger: Cotización creada
- Condición:
client.companyNamecontiene "Grupo" Ototal> $50,000 - Acción: add_label → etiqueta "VIP"
Seguimiento automático a cotizaciones no respondidas
- Trigger: Cotización enviada
- Retraso: 2880 minutos (48 horas)
- Acción: send_email → Recordatorio amable al cliente
Siguientes pasos
- API de Automatizaciones — gestiona automatizaciones via API
- Guía de Webhooks — webhooks registrados para integraciones
- Integración con Zapier — conecta con 6,000+ apps