Flujos de trabajo
Los flujos de trabajo son automatizaciones del espacio de trabajo: cuando ocurre algo (un disparador), Campbooks ejecuta una lista ordenada de acciones — opcionalmente solo si se cumple una condición. Constrúyelos en /workflows con un editor al estilo Zapier; cada ejecución queda registrada para que puedas ver exactamente lo que ocurrió.
Disparadores
Un flujo de trabajo comienza a partir de uno de tres disparadores:
| Disparador | Se activa cuando |
|---|---|
| Correo recibido | Un nuevo correo termina de procesarse (tras el análisis y la organización automática por IA) |
| Webhook | Un servicio externo hace un POST a la URL única del flujo de trabajo, <url-de-tu-app>/webhooks/<token> |
| Evento | Se publica un evento interno (p. ej., un documento es aprobado) |
La URL del webhook se genera automáticamente y puede rotarse; no requiere autenticación, lo que permite que otros servicios la llamen.
Condiciones
Un disparador puede llevar una condición, y el flujo de trabajo solo se ejecuta si la supera — por ejemplo, "solo cuando el tipo de documento del correo es factura", o una comprobación de campo genérica como payload.status == "paid" sobre el cuerpo de un webhook. Una condición fallida detiene la ejecución de forma limpia.
Acciones
Cada paso realiza una acción. Acciones integradas:
| Acción | Qué hace |
|---|---|
| Enviar correo | Envía un mensaje desde una de tus cuentas conectadas |
| Petición HTTP | Realiza una llamada API saliente |
| Mensaje de Slack | Publica en un webhook entrante de Slack |
| Mensaje de Discord | Publica en un webhook entrante de Discord |
| Acción personalizada | Llama a una Conexión guardada (URL base + autenticación reutilizables) |
| Acción de correo | Actúa sobre el correo que disparó el flujo — etiqueta, archiva o pospone |
| Crear evento de calendario | Convierte el correo que disparó el flujo en un evento de calendario |
| Enviar a Google Drive | Crea una carpeta o sube los adjuntos del correo |
| Enviar a Notion | Crea una página o un elemento de base de datos |
| Emitir evento | Publica un evento interno (que puede disparar otros flujos de trabajo) |
Plantillas con Liquid
Cada campo de un paso es una plantilla Liquid renderizada con los datos del disparador, para que las acciones puedan usar valores reales de lo que las activó:
- Los disparadores de correo exponen
emailydocuments— p. ej.{{ email.subject }},{{ email.from }}. - Los disparadores de webhook exponen
payload,headersyquery— p. ej.{{ payload.invoice_id }}.
Las variables faltantes se renderizan como vacías en lugar de producir un error, por lo que las plantillas son permisivas.
Conexiones
Una Conexión es un destino de integración guardado y reutilizable: una URL base más autenticación cifrada (bearer, cabecera o básica). La Acción personalizada resuelve la conexión en el servidor e inyecta su cabecera de autenticación en tiempo de ejecución, de modo que tus secretos nunca viven dentro de la plantilla de un paso. Gestiónelas en Configuración → Integraciones → Conexiones.
Las llamadas salientes están protegidas. Cada acción respaldada por HTTP pasa por una capa de seguridad que bloquea las solicitudes a direcciones de loopback, privadas, de enlace local y de metadatos de la nube (los hosts locales solo se permiten en desarrollo), con límites de tamaño y tiempo de petición. Esto impide que un flujo de trabajo se convierta en una herramienta para acceder a tu red interna.
Historial de ejecuciones
Abre la pestaña Ejecuciones de un flujo de trabajo para ver cada ejecución: su estado (en curso, completada, fallida), cuándo empezó y terminó, cualquier error y la entrada/salida capturada para cada paso — de modo que depurar una automatización es cuestión de leer el rastro, no de adivinar.
Disparar desde la API
Los flujos de trabajo de webhook también pueden dispararse de forma programática a través de la API pública con un scope workflows:trigger, que es el equivalente autenticado de hacer un POST a la URL del webhook.