Saltar al contenido

Uso de datos de respuesta de webhook en su journey

Cuando mapea valores de una respuesta de webhook, Pushwoosh los almacena como variables que puede usar más adelante en el journey en Update user profile, Time Delay y personalización de contenido, de la misma manera que usaría un Atributo de Evento. La única excepción es Condition split: no puede ramificar en una variable de webhook directamente, porque necesita un valor con un tipo declarado (una Etiqueta (Tag) o un Atributo de Evento), y un valor de webhook mapeado no tiene tipo. Consulte Comparar un valor de webhook en División de condición a continuación.

Guardar un valor de webhook como una Etiqueta (Tag) con Actualizar perfil de usuario

Anchor link to

Un Webhook puede devolver datos de un sistema externo, como un ID de usuario de CRM o el estado de una suscripción, que Pushwoosh aún no almacena en el perfil del usuario. Update user profile guarda los valores mapeados como Etiquetas (Tags) para que pueda usarlos en segmentos, contenido dinámico y pasos posteriores del journey.

Ejemplo: guardar un ID de usuario de CRM como una Etiqueta (Tag)

Anchor link to

Un nuevo usuario se registra en su aplicación y el journey crea un registro coincidente en su CRM. Guardar el ID de usuario de CRM devuelto como una Etiqueta (Tag) le permite hacer referencia o actualizar el mismo registro de CRM más tarde, por ejemplo, desde otro journey o una llamada de Webhook de seguimiento, en lugar de crear un registro duplicado cada vez que el usuario vuelve a entrar en el journey.

Flujo del journey: Entrada basada en disparador → Webhook → Actualizar perfil de usuario → finalizar la rama

  1. Cree un journey con Trigger-based Entry en el evento SignUp.
  2. Agregue un elemento Webhook después del paso de entrada. Asígnele un nombre (por ejemplo, Crear usuario en CRM) y establezca la URL de la solicitud en su punto final de creación de usuarios de CRM.
  3. En Response mapping, establezca Path en el campo de ID de la respuesta (por ejemplo, data.user.id) y Attribute en crm_user_id.
Mapeo de respuesta de Webhook con Ruta data.user.id y Atributo crm_user_id
  1. Agregue un elemento Update user profile después del paso Webhook.

  2. En Dynamic Tag Value, haga clic en + Dynamic Value. En Tag, seleccione la Etiqueta (Tag) que almacena el ID de CRM (créela con antelación si es necesario). En Event, seleccione el paso de webhook por el nombre que le dio (Crear usuario en CRM). En Dynamic Value, seleccione crm_user_id.

Valor de Etiqueta Dinámico con Etiqueta para ID de CRM, paso de Webhook de Evento y Valor Dinámico crm_user_id
  1. Finalice la rama: agregue un elemento Exit o déjela sin una conexión de salida.
Rama del journey terminando con Salida después del paso Actualizar perfil de usuario

Programar un retraso desde un valor de webhook con Retraso de tiempo

Anchor link to

Las fechas de visita, los plazos de renovación y las ventanas de entrega a menudo se encuentran en un sistema externo de reservas o facturación. Después de que un Webhook mapea la fecha de la respuesta de la API, Time Delay puede pausar el journey hasta ese momento, por ejemplo, 2 días antes de una cita, para que el siguiente mensaje se envíe a tiempo.

Ejemplo: programar un recordatorio a partir de una fecha en la respuesta

Anchor link to

Un usuario reserva una cita en su aplicación. El journey obtiene la fecha de la visita de su sistema de reservas y envía un recordatorio push 2 días antes de la visita.

  1. Cree un journey con Trigger-based Entry en el evento AppointmentBooked.
  2. Agregue un elemento Webhook después del paso de entrada. Asígnele un nombre (por ejemplo, Obtener detalles de la cita) y establezca la URL de la solicitud en la API de su sistema de reservas.
  3. En Response mapping, establezca Path en el campo de fecha de la respuesta (por ejemplo, appointment.date) y Attribute en visit_date.
Paso de Webhook con mapeo de respuesta para appointment.date a visit_date
  1. Agregue un elemento Time Delay después del paso Webhook. Seleccione Basado en datos de usuario/evento, establezca Obtener fecha de en Evento, establezca Evento en el paso de webhook por el nombre que le dio (Obtener detalles de la cita), establezca Valor del evento en visit_date y establezca el retraso en Antes de 2 Días.
Retraso de tiempo configurado desde visit_date del webhook con un desfase de 2 días antes
  1. Si los usuarios pueden reservar con menos de 2 días de antelación a la visita, habilite Dividir en ramas si la fecha está en el pasado o la fecha está vacía en el elemento Time Delay. Esto crea dos ramas, En el pasado y En el futuro. Consulte Dividir ramas cuando la fecha está en el pasado o vacía.
  2. Agregue un paso de Push con su mensaje de recordatorio. Si la división está habilitada, agregue este Push en ambas ramas: En el pasado (enviar inmediatamente) y En el futuro (después de Time Delay).
  3. Finalice cada rama: agregue un elemento Exit o déjela sin una conexión de salida.
Retraso de tiempo dividido en ramas En el pasado y En el futuro, cada una con pasos de Push y Salida

Comparar un valor de webhook en División de condición

Anchor link to

Condition split se ramifica en un Segmento, una Etiqueta (Tag) o un Atributo de Evento con un tipo declarado. Un valor mapeado de una respuesta de webhook no tiene tipo, por lo que no aparece en los menús desplegables de Condition split y no se puede comparar directamente.

Para ramificar en un valor de webhook, primero guárdelo como una Etiqueta (Tag) del tipo correspondiente con Update user profile, y luego compare esa Etiqueta (Tag) en Condition split.

Ejemplo: ramificar según un saldo de webhook contra el monto del evento desencadenante

Anchor link to

Un usuario solicita una compra, y el journey comprueba si su saldo de CRM cubre el precio del evento desencadenante antes de continuar.

Flujo del journey: Entrada basada en disparador → Webhook → Actualizar perfil de usuario → División de condición

  1. Cree un journey con Trigger-based Entry en el evento PurchaseRequested, con un atributo numérico required_amount.
  2. Agregue un elemento Webhook después del paso de entrada. En Response mapping, establezca Path en el campo de saldo de la respuesta (por ejemplo, current_balance) y Attribute en current_balance.
  3. Agregue un elemento Update user profile después del paso Webhook. En Dynamic Tag Value, establezca Tag en una Etiqueta (Tag) numérica de tipo Entero o Precio (créela con antelación si es necesario, por ejemplo, Current_balance), Event en el paso de webhook y Dynamic Value en current_balance.
  4. Agregue un elemento Condition split después de Update user profile. Establezca la condición en la Etiqueta (Tag) Current_balance, el operador mayor o igual que, y para el valor seleccione Atributo de evento → el evento de entrada → required_amount en lugar de una constante.
  5. Conecte cada rama a los siguientes pasos.

Aspectos a tener en cuenta

Anchor link to
  • Sintaxis de la ruta: use una ruta separada por puntos (por ejemplo, data.user.id), o un segmento * para mapear cada elemento de un array. Los filtros no son compatibles. Consulte Mapear cada elemento de un array para más detalles.
  • Tamaño de la respuesta: las respuestas de más de 64 KB no se procesan para el mapeo.
  • División de condición: un valor de webhook mapeado no tiene tipo y no se puede usar directamente. Guárdelo primero como una Etiqueta (Tag). Consulte Comparar un valor de webhook en División de condición.
  • Pruebas: ejecute Probar webhook en el elemento Webhook antes de usar valores mapeados en un journey en vivo. Confirme que la solicitud tiene éxito, luego verifique el cuerpo de la respuesta con cada Ruta en la pestaña Registro de llamadas. Si un valor parece incorrecto para un viajero específico una vez que el journey está en vivo, verifique la fila de ese viajero en el Registro de llamadas.
  • Listas en la respuesta: use * en la Ruta para mapear cada elemento. Elija item_{n} para atributos separados o un nombre sin {n} para una cadena única separada por comas. Los índices de la Ruta comienzan en 0. Los nombres {n} comienzan en 1. Como máximo se mapean los primeros 50 elementos. Consulte Mapear cada elemento de un array.