Enviar la respuesta de la encuesta de Appcues a Hojas de cálculo de Google mediante webhooks
Aprenda a enviar las respuestas de su encuesta de Appcues a Hojas de cálculo de Google mediante webhooks
Imagina que acabas de lanzar una nueva función beta y quieres recopilar comentarios de tus usuarios mediante un flujo Appcues . Quizás inicies este flujo después de que alguien haga clic o interactúe con tu nueva función, y lances una encuesta para pedir a los usuarios beta su correo electrónico, su calificación, sus comentarios y si les gustaría formar parte de futuros grupos beta.

Aunque podrías iniciar sesión en Appcues y exportar los resultados de la encuesta, quizás tu equipo no use Appcues a diario o no quieras tener que iniciar sesión a diario para obtener nuevos resultados. En su lugar, te gustaría que los resultados de la encuesta se guarden en una Hoja de Cálculo de Google para que más miembros de tu equipo puedan acceder a ellos.

¿Cómo lo harías? Sigue estos dos sencillos pasos:
- Publica tu Hoja de cálculo de Google como una aplicación web mediante Google Apps Script
- Cree un webhook en Appcues para el flujo de la encuesta
Nota: Este documento explica cómo enviar respuestas de una encuesta de flujo mediante un webhook. Si prefiere enviar respuestas desde su encuesta NPS , consulte nuestra otra documentación aquí .
Guía de construcción
Paso 1: Publica tu hoja de cálculo de Google como una aplicación web
Una excelente función de Hojas de Cálculo de Google es Google Apps Script . Esta función publica tu Hoja de Cálculo de Google como una aplicación web y te proporciona una URL para que puedas enviar datos a esta hoja de cálculo.
Haga clic en Extensiones > Apps Script
A continuación, deberá agregar un poco de Javascript para definir una función de publicación e indicarle a su aplicación qué hacer cuando se proporcionen datos. A continuación, le ofrecemos un ejemplo que puede usar.

El mensaje de evento que envía Appcues cuando se completa este flujo de comentarios beta se ve así:
{
"user_profile": null,
"account_id": "94742",
"attributes": {
"flowId": "a6804622-59f1-4160-8dc6-e85fc99fc1f0",
"flowName": "Webinar Signup Form",
"flowType": "journey",
"flowVersion": 1691721689754,
"interaction": {
"category": "form",
"formId": null,
"response": [
{
"fieldId": "c3c2feed-7c31-439b-a8e4-d1b4d724dc22",
"fieldRequired": false,
"fieldType": "null",
"label": "What is your email address?",
"value": "joey@appcues.com"
},
{
"fieldId": "92a849cf-f5f2-4e60-9473-632e5db28242",
"fieldRequired": false,
"fieldType": null,
"label": "How helpful was this feature for you?",
"value": "10"
},
{
"fieldId": "c6d79806-4a64-4f54-9666-f00f3e5e5181",
"fieldRequired": false,
"fieldType": null,
"label": "What other feedback would you like to provide?",
"value": "What a great addition!"
},
{
"fieldId": "8f07f717-5233-4145-b357-76203d5a7d09",
"fieldRequired": false,
"fieldType": null,
"label": "Would you like to receive announcements about future beta features?",
"value": "Yes"
}
]
},
"interactionType": "submit",
"sessionId": 1691722525111,
"stepChildId": "aba51afe-aacc-43b3-8904-836c205a0f10",
"stepChildNumber": 0,
"stepId": "dd3e8516-a875-45c0-b515-132740e62f19",
"stepNumber": 0,
"stepType": "modal"
},
"group_id": null,
"id": "bc572fa1-20d1-4293-b61e-3d6a66455cd7",
"ingested_at": 1691722538477,
"name": "appcues:form_submitted",
"timestamp": 1691722538173,
"user_id": "anon:3304116f-aa29-41b7-b9df-7030a893fb5f"
}
Queremos extraer cada uno de los campos de valor dentro de attribute.interaction.response , agregarlos a una matriz y pasarlos a Google Sheets usando sheet.appendRow .
Dentro de la función doPost() que Google requiere para implementar esta aplicación, puedo incluir lo siguiente. Dependiendo de la información que desee extraer de sus eventos Appcues , podría tener que ajustar esta función un poco. El siguiente fragmento de código capturará cada valor de envío del formulario web y lo imprimirá en una nueva fila de su hoja de cálculo de Google.
function doPost(e) {
var sheet = SpreadsheetApp.getActiveSheet();
//Parsing the request body
var body = JSON.parse(e.postData.contents)
//Adding a new row with content from the request body
sheet.appendRow(body.attributes.interaction.response.map( item => item.value))
}
Si desea obtener otros campos del JSON y también incluirlos, como el ID de usuario y la marca de tiempo, puede usar el siguiente código como punto de partida.
function doPost(e) {
var sheet = SpreadsheetApp.getActiveSheet();
var body = JSON.parse(e.postData.contents)
var itemValues = body.attributes.interaction.response.map( item => item.value)
var userID = body.user_id
var timestamp = body.timestamp
var rowValues = [userID, timestamp]
rowValues = rowValues.concat(itemValues)
sheet.appendRow(rowValues)
}
¡Ahora es el momento de implementar la aplicación!

En la siguiente pantalla, haga clic en “ Seleccionar tipo ” > “ Aplicación web ”.

En la siguiente pantalla, asigna un nombre a la implementación y asegúrate de que el acceso sea " Cualquiera ". Haz clic en "Implementar " y tu hoja se convertirá en una aplicación web.

En la pantalla final, copia la URL de la aplicación web. La necesitarás para el siguiente paso.

Paso 2: Crear un webhook en Appcues
Para acceder a la página de Webhooks , primero vaya a la página de Configuración de la cuenta .

Luego, en la pestaña Integraciones , haga clic en la tarjeta “Administrar webhooks”.

Haz clic en " Nuevo webhook ". En la página siguiente, le asignarás un nombre al webhook, una descripción opcional y, sobre todo, la URL del punto de conexión, que copiaste al completar la implementación de tu hoja de cálculo de Google como aplicación web.

Más abajo en la página de creación de webhook, seleccionará Eventos y experiencias , “Flujos web”, “Formulario de flujo web enviado” y el nombre de su flujo (en este caso, “Formulario de comentarios beta”).

¡Por último, habilita el webhook y listo!

A partir de ahora, cada nueva respuesta de la encuesta en su flujo se completará como una nueva fila en su hoja de Google.

¡Feliz construcción!