Cómo grabar datos que se encuentran en una sección oculta con enlace prefilled Google Form

Cómo grabar datos que se encuentran en una sección oculta con enlace prefilled Google Form

Tengo un formulario con 3 secciones. La primera sección es que el usuario introduzca respuestas, después de esta sección los usuarios serán redirigidos a la tercera sección y saltarán la segunda sección. La segunda sección es una sección oculta que los usuarios nunca redirigirán a esta sección. La tercera sección contiene sólo la descripción luego enviar el formulario.

Prellené la entrada en la segunda sección usando la función Google Form, y luego comparto el enlace con la gente.

enter image description here

Pre-filled form feature

enter image description here

Después de que el usuario presente, espero que todas las entradas se registren a la hoja de cálculo (incluyendo la entrada en la segunda sección), pero en realidad sólo registra la primera y tercera sección. No se registra la sección que el usuario nunca ha visitado.

Entonces, ¿cómo puedo registrar los datos en la sección oculta incluso cuando el usuario nunca ha visitado?

¡Gracias por adelantado!

Pregunta hecha hace 3 años, 4 meses, 25 días - Por compilercaptain


4 Respuestas:

  • El Servicios de formularios permite utilizar Google Apps Script para acceder a las respuestas de los usuarios a un formulario. Si el usuario no ha respondido, no habrá respuesta. No puedes acceder a una respuesta que no existe. Si usted está preparando la respuesta usted mismo, ¿puedo preguntar por qué necesita registrar su propia respuesta prellenada?

    Gracias por aclarar @Fanny Hasbi. Ya que sólo está usando la sección oculta para almacenar datos constantes y no entrada de usuario, sería mejor pasar sus datos a cualquier script que se está ejecutando en el formulario de envío.

    Respondida el Dec 21, 2020 a las 03:36 - por scriptsorcerer4f7e

    Votos positivos: 0 | Votos negativos: 0

  • Estoy corriendo en este mismo problema, y me encantaría encontrar una solución donde esto es posible. Sin embargo, mientras tanto, he encontrado una solución y quería compartirla aquí, aunque ha pasado algún tiempo desde tu pregunta original.

    En lugar de crear la pregunta que usted necesita para la información de seguimiento interno como un elemento de texto, en lugar de crearlo como un elemento de elección múltiple, con sólo una sola respuesta. Rellene esa respuesta con la URL y haga la respuesta necesaria. Cuando el usuario accede al formulario, se elegirá la respuesta, y no podrán editar el texto.

    Esto es obviamente menos elegante que tener una sección oculta donde el usuario no ve los datos internos, pero dadas las limitaciones de los formularios, esta puede ser la mejor opción por ahora. Así es como lo tengo establecido en mi guión:

    form.addMultipleChoiceItem()
        .setRequired(true)
        .setTitle('ID')
        .setHelpText('(for internal tracking purposes only)')
        .setChoiceValues([internalId]);
    

    Cuando creas la respuesta para la URL prellenada, es el mismo método que crear una respuesta para un elemento de texto, por lo que tu script no necesitaría cambiar en ese sentido.

    Espero que eso ayude a alguien!

    Respondida el Dec 21, 2020 a las 03:45 - por Kairo

    Votos positivos: 0 | Votos negativos: 0

  • El problema que estás experimentando se debe a que Google Forms solo registra las respuestas de las secciones que el usuario ha visitado.

    Una posible solución a este problema es utilizar Google Apps Script para automatizar la extracción de datos de las secciones ocultas y guardarlas en una hoja de cálculo de Google Sheets.

    Para lograr esto, puedes seguir los siguientes pasos:

    • Crea un script en Google Apps Script que se ejecute cuando se envíe el formulario.
    • Dentro del script, accede a las respuestas del formulario y extráe los datos de la sección oculta, incluso si el usuario no la visitó.
    • Guarda estos datos en una hoja de cálculo de Google Sheets junto con las respuestas de las secciones visitadas por el usuario.

    Aquí te dejo un ejemplo de código que podrías utilizar para lograr esto:

    javascript
    function onFormSubmit(e) {
      var formResponse = e.response;
      var itemResponses = formResponse.getItemResponses();
    
      var hiddenSectionResponse = itemResponses.find(response => response.getItem().getTitle() === "Título de la sección oculta");
    
      var formData = [];
      itemResponses.forEach(response => {
        var item = response.getItem().getTitle();
        var value = response.getResponse();
        formData.push([item, value]);
      });
    
      if (hiddenSectionResponse) {
        var hiddenSectionData = hiddenSectionResponse.getResponse();
        formData.push(["Título de la sección oculta", hiddenSectionData]);
      }
    
      var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
      sheet.appendRow(formData);
    }
    

    Recuerda que debes reemplazar "Título de la sección oculta" con el título real de la sección oculta en tu formulario. Además, debes vincular este script al formulario desde el Editor de secuencias de comandos de Google Apps Script.

    Espero que esta solución te ayude a registrar los datos de la sección oculta en tu hoja de cálculo incluso si el usuario no la ha visitado. ¡Buena suerte!

    Respondida el Dec 22, 2020 a las 03:40 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Para registrar los datos en la sección oculta incluso si el usuario nunca la visita, puedes utilizar la función onFormSubmit de Google Apps Script. Esta función se ejecuta cuando se envía el formulario y te permite acceder a todos los datos enviados, incluidas las secciones ocultas.

    Aquí tienes un ejemplo de cómo puedes utilizar onFormSubmit para registrar los datos de la sección oculta:

    
    function onFormSubmit(e) {
      // Obtener los datos del formulario.
      const form = e.values;
    
      // Obtener el valor de la sección oculta.
      const hiddenSectionValue = form[1];
    
      // Registrar los datos en la hoja de cálculo.
      const sheet = SpreadsheetApp.getActiveSheet();
      sheet.appendRow([hiddenSectionValue]);
    }
    

    Para utilizar este código, debes adjuntarlo al formulario como editor de scripts. Para ello, sigue estos pasos:

    • Abre el formulario en Google Forms.
    • Haz clic en la pestaña "Herramientas".
    • Haz clic en "Editor de scripts".
    • Pega el código en el editor de scripts.
    • Haz clic en "Guardar".

    Una vez que hayas adjuntado el código, los datos de la sección oculta se registrarán en la hoja de cálculo cada vez que se envíe el formulario.

    Respondida el Dec 22, 2020 a las 03:49 - por Gemini

    Votos positivos: 0 | Votos negativos: 0