Saltar al contenido

Enviar respuestas a tu propio endpoint con webhooks

Envía cada respuesta que reciba una campaña, firmada, a una dirección HTTPS tuya, o cualquier contenido desde un paso de un flujo de trabajo. En qué se diferencia el conector Webhooks de Configuración → API → Webhooks.

Equipo de Polzy7 min de lecturaActualizado el 31 oct 2026Business y superiores
En esta página
  1. 1¿Qué webhook necesitas?
  2. 2Antes de empezar
  3. 3Conectar el conector Webhooks
  4. 4Dar a una campaña su endpoint
  5. 5Qué recibe tu endpoint
  6. 6Comprobar la firma
  7. 7Enviar un webhook desde un flujo de trabajo
  8. 8Comprobar que funciona
  9. 9Solución de problemas
  10. 10Conviene saber

El conector Webhooks envía cada respuesta que recibe una campaña a una dirección de tu propio servidor, como un POST firmado, unos instantes después de darse. Un flujo de trabajo también puede usarlo, para enviar todo lo que sabe la ejecución. Al final de esta guía tendrás un endpoint que recibe respuestas y los medios para comprobar que cada solicitud viene de verdad de Polzy.

El conector Webhooks está incluido en el plan Business. Solo un Administrador puede conectarlo y elegir adónde van las respuestas de una campaña.

¿Qué webhook necesitas?

Polzy puede llamar a tu servidor de tres maneras:

Conector Webhooks (este artículo)Configuración → API → WebhooksPaso Webhook saliente
Qué se envíaCada respuesta de una campaña, o el contenido de un paso de un flujo de trabajoEventos del espacio de trabajo: una respuesta creada, una campaña terminada, una acción creada o completadaLo que diga el paso del flujo
Dónde se configuraIntegraciones, luego la pestaña Integraciones de una campaña o un paso de un flujoConfiguración → API → WebhooksUn flujo de trabajo
PlanBusinessEquipoEquipo
FirmadoX-Polzy-Signature, sobre el cuerpoX-Polzy-Signature, sobre la marca de tiempo y el cuerpoNo
Si falla la entregaTres intentos en totalSeis intentos en una media hora, con un registro de cada intentoDecide la regla de error del paso

Para los eventos de todo el espacio de trabajo, consulta Enviar y recibir webhooks.

Antes de empezar

Necesitas:

  • Un espacio de trabajo en el plan Business, con el rol de Administrador.
  • Integraciones activado para el espacio de trabajo, en Configuración → General → Qué hace este espacio de trabajo.
  • Un endpoint en internet, por HTTPS, que acepte un POST con cuerpo JSON y responda con un estado 2xx en menos de 10 segundos. Polzy rechaza las direcciones http:// y las de una red privada.

Conectar el conector Webhooks

Al conectar se guarda lo que comparten todas las solicitudes: el secreto de firma y los encabezados que quieras.

  1. En la barra lateral, en Automatizar, abre Integraciones y elige la pestaña Disponibles.
  2. Busca Webhooks y elige Conectar.
  3. En Secreto de firma, escribe un valor aleatorio largo y guarda una copia para tu servidor.
  4. En Encabezados HTTP, añade los encabezados que quieras enviar, como Authorization. Sus valores se guardan cifrados. Consulta Conviene saber para ver adónde van.
  5. Elige Conectar. La prueba responde Connected. Each survey and step names the endpoint it posts to.
Conectar el conector Webhooks: el secreto de firma y los encabezados que quieras.

Si dejas vacío el secreto de firma, se crea uno por ti — pero nunca se muestra, así que no podrías comprobar firmas con él. Escribe el tuyo. Para cambiarlo después, elige Configurar y escribe el nuevo encima del valor guardado.

Dar a una campaña su endpoint

  1. Abre Campañas, luego la campaña y su pestaña Integraciones.
  2. En Añadir una conexión, busca Webhooks y elige Conectar. Si el botón dice Configurar, el conector aún no está conectado al espacio de trabajo.
  3. En Destino, escribe la dirección adonde se envían las respuestas de esta campaña.
  4. Elige Guardar cambios.
El destino de una campaña: el endpoint adonde se envían sus respuestas.

Webhooks aparece entonces en Conectado a esta campaña, con Envía a y la dirección, su interruptor, Editar configuración, Desconectar y cuántas respuestas se han enviado y han fallado. Cada campaña puede enviar a su propio endpoint.

La pestaña Integraciones de una campaña: adónde va cada respuesta y qué puedes añadir.

Qué recibe tu endpoint

Cada respuesta es un POST con estos encabezados:

EncabezadoQué contiene
Content-Typeapplication/json
X-Polzy-Eventresponse.submitted para la respuesta de una campaña; desde un flujo de trabajo, el Nombre del evento del paso.
X-Polzy-SignatureEl HMAC-SHA256 del cuerpo sin procesar de la solicitud, calculado con el secreto de firma, en hexadecimal.
X-Polzy-TimestampEl timestamp del cuerpo.
Idempotency-KeySolo desde un paso de un flujo: igual cuando se repite el mismo paso, para que puedas ignorar la repetición.

Y este cuerpo JSON:

CampoQué contiene
eventresponse.submitted.
timestampCuándo se envió la solicitud. En una respuesta anónima, el día en que se dio.
survey.id, survey.titleEl ID y el título de la encuesta.
response.idEl ID de la respuesta en Polzy. Vacío en una respuesta anónima.
response.submittedAtCuándo se terminó la respuesta. En una respuesta anónima, solo el día.
response.answersUn elemento por pregunta respondida, cada uno con questionId, questionText y value.
response.scoreLa puntuación total, si ya estaba calculada al enviarse la solicitud.

Una respuesta anónima lleva lo que dice, su puntuación y su día, y nada que permita identificar o situar en el tiempo a quien la escribió. Polzy espera a la revisión de seguridad de cada respuesta, hasta 10 minutos, antes de enviarla; una respuesta retenida para revisión de seguridad llega como texto de sustitución. El tamaño mínimo de grupo no retiene las respuestas sueltas.

Comprobar la firma

  1. Lee el cuerpo de la solicitud tal como llegó, antes de procesarlo.
  2. Calcula su HMAC-SHA256 con tu secreto de firma, en hexadecimal.
  3. Compáralo con X-Polzy-Signature mediante una comparación de tiempo constante. Si no coinciden, rechaza la solicitud.

La marca de tiempo forma parte del cuerpo, así que una marca de tiempo alterada también invalida la firma.

Enviar un webhook desde un flujo de trabajo

  1. Abre Flujos de trabajo y el flujo, o crea uno nuevo.
  2. En Conectores, dentro de Pasos instalados, arrastra Enviar un webhook · Webhooks al lienzo.
  3. En Endpoint, escribe adónde envía este paso.
  4. En Nombre del evento, deja workflow.step o pon el nombre del evento que espera tu servidor. Se envía como X-Polzy-Event.
  5. Deja Contenido vacío para enviar todo lo que sabe la ejecución, o escribe el JSON que quieras, con {{ para insertar valores de la ejecución.
  6. Elige Enviar prueba para enviar una solicitud rellenada con una respuesta de ejemplo.
El paso Enviar un webhook: el endpoint, el nombre del evento y el contenido.

El paso se firma con el secreto de la conexión y deja la respuesta de tu servidor como {{connector.statusCode}} y {{connector.response}}.

Comprobar que funciona

En la pestaña Integraciones de la campaña, la línea de actividad cuenta las respuestas enviadas y las que fallaron. La página del conector muestra cada envío en Actividad, con Correcto o Falló y el motivo.

La página del conector: su estado, los últimos siete días y cada envío.

Solución de problemas

En Actividad, un envío fallido indica Webhook failed: y el motivo; la ejecución de un flujo de trabajo muestra el mismo motivo sin ese prefijo.

  • Webhook failed: only https endpoints are allowed. El endpoint debe empezar por https://.
  • Webhook failed: private addresses are not allowed. La dirección apunta a una red privada, como localhost o 10.0.0.5. Usa una dirección accesible desde internet.
  • Webhook failed: that host could not be found. El nombre de la dirección no existe. Revisa cómo está escrito.
  • Webhook failed: y un estado, como 500, o timeout of 10000ms exceeded. Tu endpoint respondió con un error o tardó más de 10 segundos. Cualquier respuesta que no sea 2xx cuenta como fallida, y el envío se intenta tres veces en total.
  • No endpoint for this survey. Set one on its Integrations tab. La campaña no tiene endpoint. Añade uno con Editar configuración en la pestaña Integraciones de la campaña.
  • La firma no coincide. Calcúlala sobre el cuerpo sin procesar, antes de cualquier análisis, con el secreto que escribiste. Si el secreto se creó por ti, escribe el tuyo.
  • Tu encabezado no llega. Consulta abajo: los encabezados solo van a un host al que la propia conexión envía.

Las respuestas que llegaron antes de guardar el endpoint, o con el interruptor apagado, no se envían después. Expórtalas desde Respuestas de la encuesta.

Conviene saber

  • ¿Adónde van los encabezados HTTP? Solo a un host al que la propia conexión envía. Un endpoint que una campaña o un paso elija en otro host se llama sin ellos, así que un valor Authorization guardado nunca llega a una dirección a la que no iba destinado. Confía en la firma para distinguir las solicitudes de Polzy de las de cualquier otro.
  • ¿Se envían las respuestas sin terminar? No. Solo las terminadas, una vez cada una.
  • ¿Puede mi endpoint responder con datos? En un paso de un flujo, sí: la respuesta se guarda como {{connector.response}} para los pasos siguientes. En las respuestas de una campaña solo cuenta su estado.
¿Te ha resultado útil?
¿Sigues atascado?

Los miembros con sesión iniciada pueden preguntar a Polzy o escribir al equipo desde Soporte. La rapidez de nuestra respuesta depende de tu plan.