Correos y Webhooks de Formulario
Cuando se envía un form, pueden pasar tres cosas además de almacenar la respuesta: un email de confirmación a quien envía, un email de notificación a alguien de la organización, y un webhook a cualquier sistema externo. Cada uno se configura en el form y los tres pueden coexistir.
Email de confirmación (a quien envía)
- Se habilita nombrando el field que contiene la dirección de email de quien envía (el reply-to field). Con eso configurado: más un SMTP funcionando bajo Settings → Email: cada persona que envía recibe una copia de sus propias respuestas.
- El asunto y el nombre del remitente son por form. La dirección reply-to se valida y se limpia de saltos de línea antes de usarse (previniendo la inyección de cabeceras SMTP mediante una respuesta “email” maliciosa).
- El envío ocurre en segundo plano después de que la submission es aceptada : el visitador no queda esperando el salto de correo.
Email de notificación al admin
- Una o más direcciones de la organización reciben el contenido de la submission; el mensaje incluye el valor de cada field visible, formateado (listas de checkboxes y direcciones renderizadas de forma legible).
- La dirección IP de origen puede incluirse como una línea en ese email (switch por form, activado por defecto) u omitirse : nota que también se suprime cuando las reglas de form/store-IP impiden que las IPs se registren.
- La notificación pasa por los mismos ajustes SMTP; las direcciones se validan al guardar.
Webhooks por form
Cada form también puede hacer POST (o PUT/PATCH) de sus submissions a un sistema externo: un CRM, un pipeline, un canal de bot:
- Endpoint URL + signing secret : con un secret configurado, la petición lleva una cabecera
X-Chinaski-Signature: sha256=…(HMAC del cuerpo de la petición) para que los receptores puedan verificar la autenticidad. - Método, cabeceras y plantilla de cuerpo personalizados: el cuerpo por defecto es JSON con las respuestas; una plantilla de cuerpo personalizada con placeholders
{{field_name}}puede dar forma al payload para una API de destino, y cabeceras personalizadas key: value (una por línea) viajan junto con ella. - Las respuestas del webhook se registran en el delivery log con reintentos (backoff de 1/10/60 minutos, tres intentos) : la misma maquinaria de entrega que los webhooks a nivel de site, visibles/reintentables en el admin.
La advertencia del air-gap
Los emails y webhooks salen hacia el mundo. Con el modo air-gap habilitado, los forms siguen aceptando y almacenando submissions, pero los emails de confirmación, las notificaciones al admin y las llamadas de webhook se omiten todas. La revisión local en el admin sigue mostrando cada respuesta.