Webhooks
¿Qué es un Webhook?
Un webhook en el desarrollo web es un método para aumentar o alterar el comportamiento de una aplicación web con callbacks personalizados. Estos callbacks pueden ser mantenidos y gestionados por usuarios y desarrolladores de terceros que no necesariamente están afiliados con la aplicación de origen.
QuestionPro admite tanto webhooks entrantes como salientes. Los webhooks pueden ser invocados antes de que comience la encuesta, durante la encuesta (antes o después de una pregunta), o después de que se complete la encuesta.
¿Qué son los webhooks entrantes?
Los Webhooks Entrantes son una manera simple de obtener datos de fuentes externas en tu encuesta.
¿Qué son los webhooks salientes?
Los webhooks salientes pueden ser utilizados para enviar datos de la encuesta a una fuente externa. Utilizan solicitudes HTTP estándar con una carga útil en formato JSON.
¿Cómo configurar webhooks?
Para crear un webhook:
- Elige la encuesta para la que deseas configurar el webhook.
- Ve a: Integraciones >> Webhooks
- Haz clic en el botón Añadir Nuevo Webhook.
- Ingresa una descripción para tu webhook y haz clic en el botón Crear Webhook.
Una vez que estés en la página de configuración, elige cuándo debe ser invocado el webhook seleccionando el evento desencadenante.
- Un webhook puede ser invocado antes de la encuesta, después de una pregunta, después de una página en la encuesta, después del botón de guardar y continuar en la encuesta, y después de la encuesta.
Nota: Para el evento desencadenante 'Después de la Pregunta', el webhook se activa al final de la encuesta, aunque solo enviando datos capturados hasta esa pregunta y no la respuesta completa. Si necesitas que el webhook se active inmediatamente 'Después de la pregunta', debes agregar manualmente un salto de página después de la pregunta.
- Si eliges activar el webhook después de la encuesta, también puedes configurar las condiciones según las cuales se debe activar el webhook.
- Configura las condiciones (si las hay) y haz clic en Siguiente.
Después de elegir la condición de activación, proporciona los datos requeridos para la llamada API:
- Método: El método HTTP utilizado para hacer la llamada.
- URL de API: La URL de endpoint para hacer una llamada API.
- Tipo de autorización: Elige el tipo de autorización y agrega credenciales si es necesario. También puedes optar por agregar las credenciales ya sea en el header o en los parameters según lo requiera la fuente externa.
- Encabezado de Solicitud: Campos de encabezado HTTP que son componentes de la sección de encabezado de la solicitud.
- JSON de Solicitud: Datos de carga útil requeridos por la API. También puedes usar el botón Insertar Respuesta para insertar la respuesta en el JSON de Solicitud.
- Una vez que completes los detalles anteriores, haz clic en el botón Prueba para verificar si obtienes la salida deseada. Si no, intenta nuevamente después de modificar los datos de la solicitud API. Una vez que estés satisfecho con la salida, haz clic en Siguiente.
El paso de Mapeo de Datos es principalmente requerido para webhooks entrantes. Puedes guardar los datos recuperados de la fuente externa mapeándolos a variables. Ten en cuenta que estas variables son diferentes de las variables personalizadas que se almacenan con la respuesta del encuestado. Si no deseas mapear datos a las variables, puedes continuar y hacer clic en
Guardar.
- Puedes mapear los datos a variables asignando claves JSON individuales a variables específicas. Puedes agregar y eliminar las variables según sea necesario.
- Una vez que se configure el mapeo, los datos recopilados pueden ser mostrados en la encuesta utilizando el siguiente código: ${code}.
Finalmente, una vez que desees que tu webhook esté activo, habilita el interruptor para hacer que el webhook esté activo.
¿Cómo proporcionar datos para un webhook saliente?
En caso de webhooks salientes, puedes enviar los datos recopilados en variables personalizadas a un servicio web externo agregando las variables personalizadas en el JSON de Solicitud.
Variables de Reemplazo de Datos
Para obtener los datos de Variables Personalizadas, puedes usar las siguientes etiquetas para las Variables Personalizadas correspondientes en el JSON de solicitud:
Variable Personalizada 1: ${custom1}
Variable Personalizada 2: ${custom2}
Variable Personalizada 3: ${custom3}
Variable Personalizada 4: ${custom4}
Variable Personalizada 5: ${custom5}
Variable Personalizada N: ${customN}
¿Cómo sabría si el Webhook se ejecutó con éxito o falló?
QuestionPro proporciona una instalación de registro para cada webhook donde puedes verificar los detalles de la API llamada por ese webhook junto con la carga útil y la respuesta del endpoint. Para acceder a los registros, ve a un webhook particular y haz clic en Registros, donde puedes ver las solicitudes realizadas por ese webhook y al hacer clic en el ID puedes verificar los detalles de cualquier llamada específica.
También, si la llamada saliente falló al enviar los datos para un evento
Después de la Encuesta, habrá un botón de Reintentar Manual disponible al lado de cualquier llamada API fallida, que puedes hacer clic en cualquier momento para reenviar los datos al endpoint de la API. También puedes seleccionar múltiples webhooks y reintentar en grupo. Otros eventos desencadenantes no son compatibles con el mecanismo de reintento.
¿Se admiten las condiciones en todos los eventos desencadenantes?
No. Actualmente las condiciones solo se admiten para el evento Después de la Encuesta.
¿Cuáles son los tipos de preguntas admitidos bajo condiciones?
Actualmente admitimos Seleccionar uno, Seleccionar muchos, menú desplegable y texto en una sola fila.
¿Cuáles son los tipos de preguntas admitidos bajo condiciones?
Actualmente admitimos Seleccionar uno, Seleccionar muchos, menú desplegable y texto en una sola fila.
¿Cómo puedo mostrar los datos de las variables dentro de la encuesta?
Si deseas mostrar el valor de una variable como ${customN} en la encuesta, puedes usar fácilmente ${code}. Alternativamente, puedes agregar el mismo mapeo de variable personalizada a nivel de encuesta que configuraste en la sección de mapeo de datos del webhook o agregar un salto de página antes de esa pregunta.
gracias por tus comentarios