Auth0
Registros, inicios de sesión y eliminaciones de Auth0 mediante Log Stream, y todos los correos electrónicos de Auth0 por Postal con Actions.
En Auth0, Postal recibe los logs de registro, inicio de sesión y eliminación mediante un Log Stream, y puede enviar todos los correos electrónicos de Auth0 con el proveedor de correo electrónico personalizado.
#Crea la conexión
En el panel, abre Integraciones › Tu app y haz clic en Conectar en la tarjeta de Auth0. La conexión tiene tu URL, que pegas en el proveedor, y muestra el paso a paso en la propia pantalla.
https://api.postal.so/integrations/crm/01a1c2d3-e4f5-7a6b-8c9d-0e1f2a3b4c5d/webhook
En Auth0, abre Monitoring › Streams y crea un stream Custom Webhook:
| Campo | Valor |
|---|---|
| Payload URL | La URL de la conexión |
| Authorization Token | Bearer seguido del secreto que muestra la conexión |
| Content Type | application/json |
| Content Format | JSON Array (ou JSON Object) |
| Filter by Category | Sign Up, Login y User/Behavioral |
Las integraciones de app cuentan en el límite del plan (app_integrations). Fuera del plan, las tarjetas aparecen bloqueadas con el botón Mejorar plan.
#Eventos
| Tipo de log | Evento en Postal | Predeterminado |
|---|---|---|
ss (registro) | auth0.user.signed_up | activado |
s (inicio de sesión) | auth0.user.logged_in | desactivado |
sv (correo electrónico verificado) | auth0.user.email_verified | activado |
scp (contraseña cambiada) | auth0.user.password_changed | activado |
sdu (usuario eliminado) | auth0.user.deleted (eliminación) | activado |
El usuario se asocia por el user_id de Auth0 (auth0|…), en external_id; el correo electrónico viene de user_name. Las propiedades son user_id, connection, client_name, log_id y date.
Para las eliminaciones, la conexión indica qué hacer con el contacto: solo registrar el evento (predeterminado), dar de baja al contacto (sigue en la audiencia, sin recibir marketing) o eliminar el contacto (sin evento, ya que el contacto desaparece). Una eliminación nunca crea un contacto que Postal no tenía.
#Configuración de la conexión
- Eventos: solo los marcados se convierten en contacto y evento; los demás se ignoran (la respuesta sigue siendo
202). - Sincronizar el nombre: actualiza el nombre y el apellido del contacto con lo que llegue del proveedor.
- Añadir al segmento y Suscribir al tema: un segmento estático y un tema para cada contacto que llega.
- Cuando el usuario se elimine en la app: solo registrar, dar de baja o eliminar el contacto.
Todo lo que la conexión cambia en el contacto lleva el origen crm:<id da conexão> (last_change_source), y cada entrega aparece en el registro de la conexión, con el resultado de cada persona. Una entrega repetida por el proveedor (mismo ID) no se procesa dos veces.
#Correos electrónicos de Auth0 por Postal
Sin conexión: el proveedor de correo electrónico personalizado de Auth0 ejecuta una Action por cada correo (verificación, bienvenida, restablecimiento de contraseña, invitación, MFA). En Branding › Email Provider, elige Custom Provider, crea la Action y guarda tu clave de API de Postal como secreto POSTAL_API_KEY:
exports.onExecuteCustomEmailProvider = async (event, api) => {
const response = await fetch('https://api.postal.so/emails', {
method: 'POST',
headers: {
Authorization: `Bearer ${event.secrets.POSTAL_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
from: 'Minha empresa <[email protected]>',
to: [event.notification.to],
subject: event.notification.subject,
html: event.notification.html,
text: event.notification.text,
tags: [{ name: 'auth0', value: event.notification.message_type }],
}),
})
if (response.status === 429 || response.status >= 500) {
api.notification.retry(`Postal respondeu ${response.status}`)
} else if (!response.ok) {
api.notification.drop(`Postal respondeu ${response.status}`)
}
}
Usa una clave solo de envío, preferiblemente restringida al dominio del remitente. Las plantillas siguen en Auth0 (Branding › Email Templates).
#Dispara automatizaciones
Cada evento queda en el contacto con el nombre auth0.user.signed_up y las propiedades de la tabla anterior. En la pantalla de la conexión, el botón Crear automatización junto a cada evento abre una automatización nueva con el disparador Evento recibido ya rellenado. Con los endpoints de automatizaciones, el disparador es {"type": "event", "event": "auth0.user.signed_up"}.
Ejemplo: bienvenida al registrarse y un consejo de seguridad después de auth0.user.password_changed. En los correos electrónicos, las propiedades del evento entran como {{event.amount}} en los pasos o como variables de la plantilla ({{{amount}}}).