Webhooks

  • Actualización

Los webhooks permiten que datos como nombre, correo electrónico, fecha de nacimiento, género, método de registro, dirección MAC, y más, se introduzcan en tus sistemas CRM internos en tiempo real.

Beneficios incluidos:

  • Obtén nuevos datos en tiempo real tan pronto como se dispare el evento
  • Ofrece a tus clientes un servicio superior. Al usar Webhooks, puedes enviar los datos de usuario de los visitantes desde Purple a tus aplicaciones internas para crear experiencias personalizadas
  • Atrae a los visitantes con tu marca. Con un feed en vivo de los datos de tus visitantes hacia tus otros CRM tendrás un perfil más completo de cada cliente.

Añadir un Webhook

  1. A nivel de empresa o lugar, navega hasta la sección de administración del portal en la barra lateral izquierda y selecciona ‘Venues’. Haz clic en la pestaña ‘Webhooks’ en la parte superior de la página ‘Venues’.
  2. Debes añadir y validar la URL de destino (endpoint) a la que quieres que el Webhook envíe los datos. Los datos se envían como un objeto JSON, así que asegúrate de que tu URL de destino pueda recibir los datos. No hay límite en la cantidad de URL que puedes validar.
  3. Una vez validada tu URL, navega hasta LogicFlow en el portal y verás un nodo de acción de Webhooks. Después de haber añadido tu nodo de inicio, ubica el nodo de webhook en tu flujo y selecciona tu URL validada, luego cierra tu flujo con el nodo final. Valida y guarda.
  4. Después, debes añadir tu LogicFlow con el Webhook a tu recorrido de acceso. Desde la pestaña ‘Onboarding’ en la barra lateral izquierda, haz clic en ‘Access Journeys’.
  5. En ‘Access Journeys’, selecciona la pestaña ‘LogicFlow’ y haz clic en ‘New logic flow’ y selecciona el LogicFlow deseado. Ahora, cada vez que un usuario se conecte a tu WiFi, sus datos se enviarán a través del Webhook recién creado.

Consulta nuestra guía en video mostrando el proceso de creación de webhooks:

Webhooks.png

Webhook listener

Para usar webhooks, necesitará su propio receptor que reciba y analice JSON en el formato especificado a continuación.

El receptor recibirá solicitudes POST de Purple con un cuerpo JSON. Una solicitud típica de Purple se estructura así:

POST /your/url HTTP/1.1

Host: your.domain.com

User-Agent: Purple Webhook

Content-Length: 960

Accept-Encoding: gzip

{

"client": {

"mac": "00-01-02-DD-03-EB",

"userAgent": "Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/99.0.4844.74 Safari\/537.36"

},

"company": {

"id": 99999,

"name": "name",

"uniqId": "uniq_ID"

},

"session": {

"authenticationTime": "2023-08-15T14:12:33+0000"

},

"user": {

"customFields": [],

"dateOfBirth": "",

"email": "webhook@test.com",

"emailStatus": "",

"firstName": "name",

"gender": "F",

"id": 123456789,

"lastName": "surname",

"locale": "en_GB",

"mobile": null,

"mobileCountry": null,

"postcode": null,

"provider": "Facebook",

"title": null,

"unsubscribed": true,

"unsubscribedDate": null,

"unsubscribedSource": null,

"visitCountsForVenues": {

"12345": 1

}

},

"venue": {

"id": 12345,

"latitude": "53.481588",

"longitude": "-2.046912",

"name": "Test Venue",

"uniqId": "vq-1ab123bc4e56e"

}

}

El receptor debe ser accesible mediante SSL con un certificado válido. No se publicarán datos en URL sin SSL. El receptor debe devolver una respuesta 200 y el encabezado wifiWebhookListener con un valor de 1 (entero uno) para verificar que sea un receptor real.

Datos

Actualmente, Purple publica los siguientes datos en los oyentes de Webhook en formato JSON:

client mac Dirección MAC de la interfaz del cliente
  userAgent Agente de usuario del navegador del cliente
company id ID de la empresa
  name Nombre de la empresa
venue id Identificación del lugar
  name Nombre del lugar
  longitude Longitud del lugar
  latitude Latitud del lugar
session authenticationTime Fecha/hora de autenticación a WiFi
user id ID de usuario
  email Dirección de correo electrónico del usuario
  firstName Nombre del usuario
  lastName Apellido del usuario
  gender Género del usuario
  provider Proveedor de autenticación del usuario (por ejemplo, 'Formulario' o 'Facebook')
  visitCountForVenues  

Estos datos se pueden ampliar en el futuro mediante la adición de nuevos campos al JSON, por lo que su oyente debería poder manejar las adiciones al esquema JSON sin errores.

Solución de problemas

El tiempo que transcurre entre la autenticación de un usuario en la red Wi-Fi y el envío de una solicitud a un receptor suele ser de unos segundos. Durante el mantenimiento o periodos excepcionales de alta carga, es posible que esto tarde más.

Si un receptor no responde (tarda más de 10 segundos en responder) o devuelve un mensaje de error, las solicitudes se vuelven a poner en cola y se vuelven a intentar después de 3 horas. Purple seguirá intentando responder al receptor. Por lo tanto, tras un periodo de inactividad en su receptor, es posible que las visitas antiguas se entreguen hasta tres horas después. Su receptor deberá ser capaz de gestionar esto. Esto también puede significar que las visitas se entreguen fuera de orden.

Tras un periodo prolongado sin respuesta o con una respuesta incorrecta, un webhook se deshabilitará automáticamente por razones de seguridad y deberá volver a verificarse manualmente en el portal antes de poder volver a habilitarse.

Se envía una solicitud a un receptor con cada autenticación. Es posible que un usuario se "autentique" varias veces por visita, por ejemplo. Al hacer clic en el navegador, dejar el teléfono inactivo o incluso cambiar de punto de acceso. Los oyentes deberán gestionar esto (por ejemplo, si su caso práctico implica enviar un correo electrónico activado a sus visitantes, se requerirán comprobaciones para que cada usuario reciba un correo electrónico solo una vez al día, en lugar de cada activación de webhook).

Los webhooks solo envían datos básicos por POST a los oyentes. Sin embargo, los ID devueltos para la empresa, el lugar y el usuario coinciden con los utilizados en la API de empresa de Purple, por lo que puede volver a llamar a la API de empresa para obtener información más detallada sobre una sesión o un usuario.

 

Compartir en línea
¿Fue útil este artículo?
Usuarios a los que les pareció útil: 0 de 0