Si desea recopilar las respuestas de su widget en Kameleoon y exportarlas a CSV, consulte este artículo.
En este artículo, aprenderá:
- Cómo configurar su Google Sheet para recibir los datos de la encuesta.
- Cómo configurar la pestaña Configuración de la encuesta en el Widget Studio para enviar las respuestas a Google Sheets.
Configurar su Google Sheet
- Vaya a Google Sheets y cree una nueva hoja de cálculo.
- Nombre la pestaña Sheet 1 (que es la predeterminada).
- En la primera fila, defina las columnas de la siguiente manera:
Detalles:
- Columna A > Introduzca Date. Esta celda se rellenará automáticamente con la fecha y hora de cada envío.
- Desde la columna B en adelante > Introduzca el nombre de cada elemento de encuesta o formulario añadido a su widget.
Puede encontrar el nombre de un elemento en el árbol de elementos en la pestaña Contenido de la sección Diseño.
Cuando selecciona un elemento (por ejemplo, una escala), su nombre aparece en la parte superior de la barra lateral de edición.
Usemos este widget como ejemplo:
Este widget tiene dos elementos de encuesta. Por lo tanto, en la primera fila del Google Sheet, debemos introducir:
- Columna A: Date
- Columna B: Scale
- Columna C: Long Answer
- Añada un Google App Script
- Haga clic en Extensiones > App Script. Se abrirá un nuevo Google Script. Renómbrelo (por ejemplo, My form data).
- Sustituya todo el código por el siguiente:
const sheetName = 'Sheet1'
const scriptProp = PropertiesService.getScriptProperties()
function initialSetup () {
const activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet()
scriptProp.setProperty('key', activeSpreadsheet.getId())
}
function doPost (e) {
const lock = LockService.getScriptLock()
lock.tryLock(10000)
try {
const doc = SpreadsheetApp.openById(scriptProp.getProperty('key'))
const sheet = doc.getSheetByName(sheetName)
const headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0]
const nextRow = sheet.getLastRow() + 1
const newRow = headers.map(function(header) {
return header === 'Date' ? new Date() : e.parameter[header]})
sheet.getRange(nextRow, 1, 1, newRow.length).setValues([newRow])
return ContentService .createTextOutput(JSON.stringify({ 'result': 'success', 'row': nextRow })) .setMimeType(ContentService.MimeType.JSON)
}
catch (e) {
return ContentService
.createTextOutput(JSON.stringify({ 'result': 'error', 'error': e }))
.setMimeType(ContentService.MimeType.JSON)
}
finally {
lock.releaseLock()
}
}
Si por algún motivo no puede nombrar su pestaña “Sheet 1”, cambie la primera línea del script y sustituya “Sheet 1” por el nombre real de su pestaña.
Cuando haya terminado, su script debería tener este aspecto:
- Haga clic en Guardar proyecto en Drive (a la izquierda de Ejecutar).
- En el menú desplegable a la derecha de Depurar, seleccione
initialSetup (debería estar seleccionado de forma predeterminada).
- Haga clic en Ejecutar.
Es posible que vea una ventana emergente solicitando permisos. Haga clic en Revisar permisos y continúe a la siguiente pantalla.
Como Google no ha revisado el script, puede aparecer un mensaje de advertencia. Haga clic en Ir a Mailing List (no seguro) para configurar los permisos correctos para actualizar su formulario.
Una vez concedidos los permisos correctos al script, debería ver la siguiente salida en la consola del editor de scripts:
En el menú de la izquierda, haga clic en Activadores para añadir un activador para el script.
A continuación, haga clic en Añadir activador.
En la ventana que aparece, seleccione las siguientes opciones:
- Elegir qué función ejecutar:
doPost
- Elegir qué implementación se debe ejecutar:
Head
- Seleccionar fuente del evento:
Desde la hoja de cálculo
- Seleccionar tipo de evento:
Al enviar el formulario
Haga clic en Guardar.
Haga clic en Implementar > Nueva implementación.
Haga clic en el icono de rueda dentada junto a Seleccionar tipo > Aplicación web.
En el formulario que aparece, seleccione las siguientes opciones:
- Descripción:
My Form Data (puede ser lo que desee; simplemente hágalo descriptivo).
- Aplicación web > Ejecutar como:
Yo
- Aplicación web > Quién tiene acceso:
Cualquiera
Haga clic en Implementar.
Quién tiene acceso: Cualquiera es obligatorio para la transmisión correcta de los resultados.
Copie la URL.
- En la pestaña Configuración de la encuesta, seleccione el botón que los usuarios harán clic para enviar su respuesta.
- En ¿Cómo se recopilan las respuestas?, elija Solicitud HTTP (externa).
- Nombre de la solicitud: Asigne un nombre a su solicitud (por ejemplo, Enviar datos a mi Google Sheet).
- Método: Seleccione
POST.
- URL de acción: Pegue la URL generada por su Google Apps Script.
- Guarde su configuración.
Probar su configuración
- Previsualice su widget.
- Rellene la encuesta y haga clic en Enviar.
- Vuelva a su Google Sheet.
Debería ver ahora una nueva fila con su respuesta.