Configurar un webhook

Envía las respuestas de la encuesta a tu propia dirección y comprueba que el receptor las aceptó

Skill gratis para Claude Code, Codex, Cursor y Gemini CLI. Trabaja a través del servidor MCP de SurveyNinja, con tus permisos.

Categoría
Hacer llegar las respuestas
Etiquetas
webhook, integraciones
Funciona con
Claude Code, Codex, Cursor, Gemini CLI
Herramientas MCP
11, 6 cambian datos
Versión
1.0.1, 20 de octubre de 2026
Creada por
SurveyNinja
Precio
Gratis
Ver también
Integración con webhooksIntegración con Zapier
Archivo de la skill
SKILL.md

Qué hace

  • Las respuestas van directo a tu sistema. Cada respuesta se envía como solicitud HTTP a tu dirección, con los campos que necesitas y con los nombres que necesitas.
  • La entrega se comprueba. Después de la primera respuesta, la skill lee el registro de entregas: el código y la respuesta del receptor.
  • Las claves de acceso no pasan por el chat. Las claves de tu receptor van en los encabezados del webhook dentro de la app. Nunca se las dictas al asistente.

Ejemplo

Tú escribes

Configura un webhook para enviar las respuestas a nuestro servidor

Lo que te devuelve el asistente

3
Camposde nueve preguntas
no
Incompletas
47
Entregasesta semana
0
Errores
  1. https://crm.example.com/hooks/survey POST, respuestas completas, activo
  2. phone ← Tu teléfono campo renombrado
  3. rating ← ¿Qué tan satisfecho estás? campo renombrado
  4. Authorization: *** encabezado, valor oculto
  5. Última entrega 30 de septiembre, 14:02, el receptor respondió 200
El receptor aceptó la primera respuesta con código 200

El webhook funciona. Si el receptor empieza a responder con 4xx, el asistente no reenvía a ciegas. Primero se corrige la causa y después se reenvía.

La dirección y los campos son un ejemplo. La configuración se arma para tu sistema.

Cómo funciona

  1. Revisa lo que ya existeUn segundo webhook a la misma dirección casi siempre es un error. El asistente revisa la lista antes de crear uno nuevo.
  2. Pide las cuatro cosas sin las que nada funcionaLa dirección, el método, qué campos enviar y cómo se llaman. Los campos se pueden renombrar para que coincidan con tu sistema.
  3. Cuida las respuestas incompletasSi también quieres las abandonadas, se envían con un retraso para que quien vuelva a terminar la encuesta no llegue dos veces.
  4. Lee el registro de entregas200 significa que funciona, 4xx que el receptor rechazó la solicitud y 5xx que el error está de su lado. No se reenvía nada mientras el receptor siga fallando.

Prueba también

  • Envía el teléfono de la encuesta a nuestro CRM en un campo llamado phone
  • Revisa si las respuestas están llegando por el webhook

Lo que no hará

  • No crear un segundo webhook a la misma dirección
  • No enviar todas las preguntas
  • No pedirte que dictes claves de acceso en el chat
  • No activar un webhook que se desactivó a propósito
  • No sugerir un plan superior ni presionarte para pagar

La skill trabaja con tus permisos. Las herramientas que cambian datos vienen marcadas, así que revisas lo que el asistente va a hacer antes de confirmar. Para cortar el acceso, quita el conector en el asistente o borra la clave API.

En resumen

¿Los webhooks están en mi plan?

La skill lo revisa primero, porque los webhooks no están en todos los planes. Si no están disponibles, te lo dice de inmediato y se detiene.

¿Qué tengo que indicarle?

Cuatro cosas: la dirección (pública, con http o https), el método (casi siempre POST), qué campos enviar y cómo los llama tu sistema.

¿Los campos pueden llevar el nombre que espera mi sistema?

Sí. Si tu sistema espera phone y la pregunta se llama Tu teléfono, la skill renombra el campo en el envío. La pregunta en la encuesta queda igual.

¿Se envían las respuestas abandonadas?

Por defecto solo se envían las completas. Si también quieres las abandonadas, la skill las envía con un retraso de 1, 6, 12 o 24 horas, para que quien vuelve a terminar no llegue dos veces.

¿Cómo sé que el webhook funciona?

Un webhook nuevo se crea desactivado, y la skill lo activa cuando confirmas que el receptor está listo. Después de la primera respuesta lee el registro: 200 significa que funciona, 4xx que el receptor rechazó la solicitud y 5xx que el error está de su lado. Un registro vacío significa que todavía no hubo respuestas.

¿Cómo paso una clave de acceso de mi sistema?

No la pegues en el chat. Pon las claves en los encabezados del webhook dentro de la app. El asistente solo ve los valores ocultos con asteriscos.

La skill completa

El archivo SKILL.md que lee el asistente, tal como está en el archivo descargable.

Ver el texto completo

Webhook: responses to your own address

A webhook is the most direct way to get responses into your own system: every response goes out as an HTTP request to the given address. It is quick to set up and quiet when it breaks, so order matters more than speed here.

Reply to the person in the language they write in.

1. Check that webhooks are available

get_workspace_tariff (the workspace_id comes from get_workspace_list): webhooks are not part of every plan. If they are not available, say so right away and stop. Creating and switching on a webhook check the plan too, but collecting the address, method, fields and headers only to hit a refusal at the last step wastes the conversation.

If the target is Zapier, a webhook is not needed: SurveyNinja has a Zapier integration. The zap is built in Zapier, and manage_quiz_zapier shows whether sending is on and switches it.

2. See what already exists

get_quiz_webhooks lists the survey's webhooks, whether each is on, and whether one switched itself off after a run of failed deliveries. A second webhook to the same address is almost always a mistake, not a wish: check before creating.

3. Find out four things

Nothing can be created without them:

What Why
Address where to send; a public http or https address (internal addresses are rejected), and the receiver must answer 2xx
Method post almost always; get, put, patch if the receiver demands it
Which fields a contact and two or three key answers beat the whole questionnaire and are easier for the receiver
Field names if the system expects phone and the question is "Your phone", rename it with body_naming

Question names and identifiers come from get_quiz_structure.

4. Create and switch on

create_quiz_webhook: a title (for the person, to tell webhooks apart), address, method, fields (body), renaming (body_naming) and headers (headers, where the receiver's access keys go).

Unfinished responses: incomplete and hours. By default only finished ones are sent. If abandoned ones are wanted too, send them with a delay of 1, 6, 12 or 24 hours; otherwise a person who comes back to finish arrives twice.

A new webhook is created switched off. Tell the person, and once they confirm the receiver is ready, turn it on with toggle_quiz_webhook.

5. Verify delivery

After the first response, read get_quiz_webhook_logs: the receiver's response code and body. 200 means it works. 4xx means the receiver rejected it, usually because of the address, the method or the body format. 5xx is an error on their side. An empty log means no responses yet, which is not an error.

Do not resend with resend_quiz_webhook_log while the receiver answers with an error: the same thing will happen again. Once it is fixed, resend one entry by log_id or every entry over a period.

Change, disable, delete

  • Fix the address or fields with update_quiz_webhook. Fields you do not pass keep their values, so send only what changes. headers is replaced as a whole list, and header values come back masked: to change one header, ask the person for the others again, or leave headers out entirely.
  • A webhook that switched itself off after failures comes back on with toggle_quiz_webhook, once the receiver is fixed.
  • To pause while they fix their side, switch it off with toggle_quiz_webhook rather than deleting it.
  • Delete with delete_quiz_webhook only on a direct request: the settings, headers and delivery log are gone for good.

What not to do

  • Do not create a second webhook to the same address without asking.
  • Do not send every question when there are many. The receiver needs the right fields.
  • Do not ask the person to dictate access keys into the chat. Ask them to put the keys into the webhook headers in the app, or insert only what they sent themselves.
  • Do not enable a webhook that was disabled on purpose.
  • Do not suggest a plan upgrade or lead to payment. If a limit is hit, state the fact and stop.
El ninja de SurveyNinja en un cohete

Conecta SurveyNinja a tu asistente

El servidor MCP funciona en todos los planes, también en Free. Regístrate, permite el acceso y pídele a tu asistente que arme la primera encuesta.