Enviar presentaciones NPS Appcues a Hojas de cálculo de Google mediante webhooks
Aprenda a enviar sus envíos NPS Appcues directamente a Hojas de cálculo de Google mediante webhooks
NPS es una de las métricas más importantes que tu equipo puede medir, y a veces, necesitas realizar cálculos adicionales o ver los datos en una plataforma externa a Appcues . Con nuestra función de webhooks , puedes enviar todos los envíos NPS directamente a Hojas de Cálculo de Google para que tu equipo pueda seguirlos y tomar medidas sobre los comentarios enviados en tiempo real.

Esta guía lo guiará en la configuración mediante los siguientes 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 eventos de encuestas NPS mediante un webhook. Si trabaja con una encuesta en un flujo, consulte la documentación relevante 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.

Hay dos eventos NPS que nos interesan al crear esto. El primero es el evento de puntuación NPS , que se genera cuando un usuario hace clic para enviar una puntuación. El segundo es el evento de retroalimentación NPS , que se genera cuando el usuario envía comentarios por escrito. Estos eventos se verán así:
NPS SCORE EVENT
{
"account_id": "85728",
"attributes": {
"_prev_nps_score": 6,
"_prev_nps_score_time": 1730401661900,
"flowId": "70e45b00-0f35-44c7-b70b-aaaead4c41d8",
"flowName": "NPS",
"flowType": "satisfaction-survey",
"flowVersion": 1715816576469,
"score": 8,
"sessionId": "bd7e12f7-061b-4f9a-8b2a-0fa617697353"
},
"context": {
"url": "https://elijah-demo-app.netlify.app/"
},
"group_id": "group1",
"id": "b3ca410e-bf8e-485d-a0df-f03093592ea8",
"ingested_at": 1730402034651,
"name": "appcues:nps_score",
"timestamp": 1730402034366,
"user_id": "user_1"
}
NPS FEEDBACK EVENT
{
"feedback": "I love it!",
"flowId": "70e45b00-0f35-44c7-b70b-aaaead4c41d8",
"flowName": "NPS",
"flowType": "satisfaction-survey",
"flowVersion": 1715816576469,
"sessionId": "bd7e12f7-061b-4f9a-8b2a-0fa617697353"
},
"context": {
"url": "https://elijah-demo-app.netlify.app/"
},
"group_id": "group1",
"id": "eeb77957-1cfa-4764-9ef9-6891eb0be2e0",
"ingested_at": 1730402039800,
"name": "appcues:nps_feedback",
"timestamp": 1730402039520,
"user_id": "user_1"
}
Esto significa que hay dos casos que nuestro script debe tener en cuenta: 1. recibir un evento de puntuación y agregarlo como una nueva fila en la hoja de cálculo de Google, y 2. recibir un evento de retroalimentación y agregar la retroalimentación del usuario en la fila que contiene su puntuación.
Para el evento de puntuación, queremos extraer todos los campos relevantes (marca de tiempo, ID de usuario, puntuación) y pasarlos a Hojas de Cálculo de Google mediante sheet.appendRow . Además, he decidido añadir una nueva columna que contendrá la marca de tiempo con un formato de fecha legible.
Para el evento de comentarios, buscaremos en la hoja de cálculo la fila más reciente que incluya el ID de usuario del usuario y luego agregaremos los comentarios en la columna correspondiente.
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 ser conveniente ajustar esta función un poco.
function doPost(e) {
// select active sheet and parse event data sent from webhook
var sheet = SpreadsheetApp.getActiveSheet();
var body = JSON.parse(e.postData.contents);
// assign variables for easy reference
var timestamp = body.timestamp;
var date = new Date(timestamp).toUTCString();
var userId = body.user_id;
var score = body.attributes.score;
var feedback = body.attributes.feedback;
var eventName = body.name;
// add a new row when user submits a score event OR append feedback from feedback event to existing row
if (eventName == 'appcues:nps_score') {
var rowData = [timestamp, date, userId, score, feedback];
sheet.appendRow(rowData);
} else {
// add a 30 second delay on adding feedback to avoid potential race condition and ensure score event has been created in the spreadsheet
Utilities.sleep(30*1000)
// search for user's most recent score and save its row number
const textFinder = sheet.createTextFinder(userId);
const current_row = textFinder.findPrevious().getRow();
// set the value in the feedback column. Because the feedback in the above rowData variable is in the 5th position, the column changed is 5
sheet.getRange(current_row, 5).setValue(feedback);
}
}
NOTA: Con este código, las columnas de la hoja de cálculo contendrán la marca de tiempo, la fecha, el ID de usuario, la puntuación NPS y la retroalimentación NPS . Puede ajustarlo como desee, pero recuerde que el número de columna donde se encuentre la retroalimentación debe ser el mismo que se use en la función getRange .
¡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.

NOTA: Si alguna vez desea realizar un cambio en el código que se usa en esta aplicación, deberá volver a implementarlo, copiar la URL de la nueva aplicación web y actualizar la URL en la configuración del webhook Appcues .
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 .

Y luego, en la sección Integraciones de la barra de navegación izquierda, navegue hasta 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 del webhook, selecciona "Eventos". A continuación, añade "Comentarios NPS " y "Puntuación de NPS " como los eventos que el webhook escucha.

¡Por último, habilita el webhook y listo!

A partir de ahora, cada nueva respuesta de la encuesta NPS aparecerá como una nueva fila en su hoja de Google.

¡Feliz construcción!