Integraciones

Envía las respuestas de un formulario a Google Sheets

Hoy no existe una sincronización nativa con Google Sheets en YeetForm, pero puedes conseguir el mismo resultado, una fila de hoja de cálculo por respuesta, añadida automáticamente, con un pequeño Google Apps Script y un webhook. Esta página muestra el script exacto (unas 15 líneas), cómo implementarlo como aplicación web y cómo apuntar un webhook de YeetForm a la URL resultante. Lleva unos minutos y no necesita un servidor propio.

Configuración

1.

Añade una integración de webhook

Google Sheets no tiene un conector nativo con YeetForm, así que el puente es un webhook: en la pestaña Integraciones del formulario, añade un endpoint de Webhooks que apunte a la URL de una aplicación web de Google Apps Script.

2.

Crea el Apps Script

En tu hoja de cálculo de destino, abre Extensions → Apps Script, pega el script de abajo e impleméntalo como aplicación web (Execute as: Me, Who has access: Anyone with the link). Usa la URL de la implementación como endpoint de tu webhook.

function doPost(e) {
  var payload = JSON.parse(e.postData.contents);
  if (payload.event !== "response.created") return ContentService.createTextOutput("ignored");

  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var labels = {};
  (payload.fields || []).forEach(function (f) { labels[f.id] = f.label; });

  var row = [payload.response_id, payload.submitted_at];
  Object.keys(payload.answers).forEach(function (id) {
    row.push(labels[id] || id, payload.answers[id]);
  });

  sheet.appendRow(row);
  return ContentService.createTextOutput("ok");
}
3.

Implementa y copia la URL

Al implementar se crea una URL como https://script.google.com/macros/s/.../exec: pégala en el campo de webhook de YeetForm del paso 1.

4.

Envía una respuesta de prueba

Envía el formulario (o usa el botón de prueba de la integración de webhook) y confirma que aparece una fila nueva en la hoja con las respuestas en el orden correcto.

5.

Mantén sincronizadas la hoja y el formulario

Si más adelante añades o quitas campos del formulario, actualiza el mapeo de columnas del script: lee las respuestas por el id del campo, no por la posición, así que no desalineará en silencio las columnas existentes, pero un campo nuevo necesita una línea nueva en el script.

Consejos

  • →Usa el response_id de la respuesta como clave de deduplicación en la hoja (no añadas una fila si ya existe una con ese id), ya que un envío de webhook reenviado manda de nuevo la misma respuesta.
  • →Mapea las columnas a partir del array fields del payload (id a label) en lugar de fijar ids de campo, para que el script sobreviva a que renombres o reordenes campos.
  • →Esta es una receta basada en webhooks, no una integración nativa: si hay problemas con la cuota de Apps Script o con tu cuenta, las filas dejan de aparecer en silencio; consulta la pestaña Integraciones del formulario para ver el estado de la entrega en lugar de fijarte solo en la hoja.

Crea tu formulario con IA en segundos

Empieza gratis

Preguntas frecuentes

¿Existe una integración nativa con Google Sheets?+
No: YeetForm no se sincroniza directamente con Sheets. Esta página muestra una receta de webhook con Apps Script que llega al mismo resultado: una fila por respuesta, añadida automáticamente.
¿Esto funciona con la función "destino en Sheets" de Google Forms?+
No, esa función es específica de Google Forms. Esta receta usa una aplicación web de Google Apps Script como tu propio endpoint, disparado por el webhook de YeetForm, independiente de Google Forms.
¿Y si más adelante añado un campo nuevo a mi formulario?+
El script mapea las respuestas por el id y la etiqueta del campo, así que sigue funcionando, pero un campo totalmente nuevo necesita que se añada una línea al script (o un pequeño ajuste) para aparecer como su propia columna: mira los consejos de arriba.
¿Se reintenta si el script falla?+
Sí: en el fondo es un envío de webhook normal, así que una respuesta fallida de Apps Script se reenvía hasta 3 veces como cualquier otro webhook.