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
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.
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");
}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.
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.
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.