Iniciar sesión Crear cuenta
Integraciones

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.

URL de la conexión (ejemplo)
https://api.postal.so/integrations/crm/01a1c2d3-e4f5-7a6b-8c9d-0e1f2a3b4c5d/webhook

En Auth0, abre Monitoring › Streams y crea un stream Custom Webhook:

CampoValor
Payload URLLa URL de la conexión
Authorization TokenBearer seguido del secreto que muestra la conexión
Content Typeapplication/json
Content FormatJSON Array (ou JSON Object)
Filter by CategorySign 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 logEvento en PostalPredeterminado
ss (registro)auth0.user.signed_upactivado
s (inicio de sesión)auth0.user.logged_indesactivado
sv (correo electrónico verificado)auth0.user.email_verifiedactivado
scp (contraseña cambiada)auth0.user.password_changedactivado
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:

Action: Custom Email Provider
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}}}).