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 envíen a sus sistemas CRM internos en tiempo real.
Licencia requerida: Engage
Los beneficios incluyen:
- Obtenga nuevos datos en tiempo real tan pronto como se active el evento.
- Ofrezca a sus clientes un servicio superior. Usando Webhooks, puede enviar los datos de usuario de los visitantes desde Purple a sus aplicaciones internas para habilitar una experiencia personalizada.
- Involucre a los visitantes con su marca. Tener un flujo en vivo de los datos de sus visitantes siendo enviados a sus otros CRM le proporciona un perfil más completo de cada cliente.
Agregar un Webhook
- A nivel de empresa o lugar, navegue a la sección de Gestión del Portal desde la barra lateral izquierda y seleccione Lugares. Haga clic en la pestaña Webhooks en la parte superior de la página de Lugares.
- Debe agregar y validar la URL de destino (endpoint) a la que desea que el Webhook envíe datos. Los datos se envían como un objeto JSON, por lo que debe asegurarse de que su URL de destino sea capaz de recibir los datos. No hay límite en la cantidad de URLs que puede validar.
- Una vez que su URL esté validada, navegue a LogicFlow en el portal y verá un Nodo de Acción Webhooks. Esto debe configurarse en un LogicFlow 'En línea'. Después de agregar su Nodo de Inicio, coloque el Nodo Webhook en su flujo y seleccione su URL validada, luego cierre su flujo con el Nodo Final. Valide y guarde.
- A continuación, debe agregar su LogicFlow con el Webhook en su Access Journey. Desde la pestaña Onboarding en la barra lateral izquierda dentro del portal, haga clic en Access Journeys.
- Desde Access Journeys, seleccione la pestaña LogicFlow y haga clic en ‘Nuevo flujo lógico’. Seleccione el LogicFlow deseado. Ahora, cada vez que un usuario se conecte a su WiFi, sus datos se enviarán a través del Webhook recién creado.
Consulte nuestra guía en video que muestra el proceso de creación del webhook:
Escucha de Webhook
Para usar Webhooks, necesitará tener su propio listener que reciba y analice JSON en el formato especificado a continuación.
El listener recibirá solicitudes POST de Purple con un cuerpo JSON. Una solicitud típica de Purple tendrá la siguiente estructura:
|
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 listener debe ser accesible vía SSL, con un certificado válido. Los datos no se enviarán a URLs sin SSL. El listener debe devolver una respuesta 200, y devolver el encabezado wifiWebhookListener con un valor de 1 (entero uno) para verificar que es un listener real.
Datos
Purple actualmente envía los siguientes datos a los listeners 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 | ID del lugar |
| name | Nombre del lugar | |
| longitude | Longitud del lugar | |
| latitude | Latitud del lugar | |
| session | authenticationTime | Fecha/hora de autenticación al WiFi |
| user | id | ID del usuario |
| 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 (p. ej., 'Form' o 'Facebook') | |
| visitCountForVenues | ||
| firstVisit | Primera visita del usuario | |
| lastVisit | Última visita del usuario |
Estos datos pueden ampliarse en el futuro mediante la adición de nuevos campos al JSON, por lo que su listener debe ser capaz de manejar adiciones al esquema JSON sin errores.
Solución de problemas
El tiempo entre que un usuario se autentica en el WiFi y se envía una solicitud a un listener suele ser de unos pocos segundos. Durante mantenimiento o períodos raros de carga muy alta, es posible que esto tome más tiempo.
Si un listener 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 intentan nuevamente después de 3 horas. Purple seguirá intentando contactar al listener. Por lo tanto, después de un período de inactividad en su listener, encontrará que visitas antiguas se entregan hasta tres horas después. Su listener deberá poder manejar esto. Esto también puede significar que las visitas se entreguen fuera de orden.
Después de un período prolongado de falta de respuesta o de devolver una mala respuesta, un Webhook se desactivará automáticamente por razones de seguridad y deberá ser verificado manualmente en el portal antes de poder habilitarse nuevamente.
Se envía una solicitud a un listener en cada autenticación. Es posible que un usuario se 'autentique' varias veces por visita, por ejemplo, al hacer clic hacia atrás en su navegador, dejar su teléfono inactivo o incluso al moverse de un AP a otro. Los listeners deberán gestionar esto (por ejemplo, si su caso de uso implica enviar un correo electrónico activado a sus visitantes, se requerirán verificaciones para que un usuario dado reciba un solo correo por día en lugar de por cada activación de Webhook).
Los Webhooks solo envían datos básicos a los listeners. Sin embargo, los IDs devueltos para empresa, lugar y usuario coinciden con los IDs usados en la API de Empresa de Purple, por lo que puede consultar la API de Empresa para obtener información más detallada sobre una sesión o usuario.