시작하기
팀/워크스페이스
설문 제작
설문 관리
설문 공유
설문 연동
커스텀 디자인
결과 분석
개인 소유의 구글시트와 연동하기

  1. 구글시트의 ‘확장 프로그램’ 탭에서 ‘App Script’를 눌러주세요.


  2. 새 스크립트를 추가해주세요.


  3. 기본 내용을 모두 지운 후, 아래의 코드를 붙여넣어주세요.

    function doPost(e) {
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var sheet = ss.getSheets()[0];
      ss.setSpreadsheetTimeZone('Asia/Seoul');
      // Parsing the POST data to get the required data
      var data = JSON.parse(e.postData.contents);
      
      var formAnswers = data.form_answers;
      var submittedAt = new Date(data.form_response.submitted_at);
    
      var responseId = data.form_response.response_id.slice(0,10);
      // First row: labels
      if (sheet.getLastRow() === 0) {
        var fieldLabels = formAnswers.map(function(answer) {
          if (answer.type === 'RADIO_GRID' || answer.type === 'CHECKBOX_GRID') {
            return answer.response.map(el => `${answer.label} - ${el.lineLabel}`);
          }
          return answer.label
        }).flat();
        var headers = ['Response ID', 'Time Submitted', ...fieldLabels]
        sheet.appendRow(headers);
      } 
       var rowData = formAnswers.map(field => {
          switch (field.type) {
            case 'CHECKBOX':
            case 'RADIO': {
              var isResponseArray = Array.isArray(field.response);
              if (isResponseArray) {
                return field.response.filter(el => Boolean(el)).join(', ');
              }
              return field.response || '';
            }
            case 'CHECKBOX_GRID':
            case 'RADIO_GRID': {
              var isLineResponseArray = Array.isArray(field.response.lineResponse)
              return field.response.map(el => {
                if (isLineResponseArray) {
                  return el.lineResponse.filter(el => Boolean(el)).join(', ');
                }
                return el.lineResponse || '';
              })
            }
            case 'GEOLOCATION': {
              var response = field.response || {};
              var responseArray = Object.entries(response).map(el => `${el[0]}: ${el[1]}`);
              return responseArray.join(', ');
            }
            case 'HIDDEN': {
              return field.response === undefined || field.response === null
                ? ''
                : field.response;
            }
            default: {
              var response =
                field.response === undefined || field.response === null ? '' : field.response;
              if (Array.isArray(response)) {
                return response.join(', ');
              }
              return response;
            }
          }
        }).flat();
      sheet.appendRow([responseId, submittedAt, ...rowData]);
      return ContentService.createTextOutput(JSON.stringify({result: "success"})).setMimeType(ContentService.MimeType.JSON);
    }
  4. ‘새 배포’를 눌러주세요.


  5. 유형은 ‘웹 앱’, 액세스 권한이 있는 사용자는 ‘모든 사용자’로 설정해주세요.


  6. 액세스를 승인해주세요.


  7. ‘URL’을 복사해주세요.


  8. 왈라의 ‘연동하기’ 탭에서 ‘웹훅 관리’ 버튼을 눌러주세요.


  9. URL을 붙여넣고 웹훅을 추가해주세요.


  10. 변경 사항을 저장한 후, ‘웹훅 설정’에서 활성화 해주세요.


  11. 응답이 도착하면 구글시트에 응답 내용이 기록돼요.

디자인
Result Analysis
개인 소유의 구글시트와 연동하기

  1. 구글시트의 ‘확장 프로그램’ 탭에서 ‘App Script’를 눌러주세요.


  2. 새 스크립트를 추가해주세요.


  3. 기본 내용을 모두 지운 후, 아래의 코드를 붙여넣어주세요.

    function doPost(e) {
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var sheet = ss.getSheets()[0];
      ss.setSpreadsheetTimeZone('Asia/Seoul');
      // Parsing the POST data to get the required data
      var data = JSON.parse(e.postData.contents);
      
      var formAnswers = data.form_answers;
      var submittedAt = new Date(data.form_response.submitted_at);
    
      var responseId = data.form_response.response_id.slice(0,10);
      // First row: labels
      if (sheet.getLastRow() === 0) {
        var fieldLabels = formAnswers.map(function(answer) {
          if (answer.type === 'RADIO_GRID' || answer.type === 'CHECKBOX_GRID') {
            return answer.response.map(el => `${answer.label} - ${el.lineLabel}`);
          }
          return answer.label
        }).flat();
        var headers = ['Response ID', 'Time Submitted', ...fieldLabels]
        sheet.appendRow(headers);
      } 
       var rowData = formAnswers.map(field => {
          switch (field.type) {
            case 'CHECKBOX':
            case 'RADIO': {
              var isResponseArray = Array.isArray(field.response);
              if (isResponseArray) {
                return field.response.filter(el => Boolean(el)).join(', ');
              }
              return field.response || '';
            }
            case 'CHECKBOX_GRID':
            case 'RADIO_GRID': {
              var isLineResponseArray = Array.isArray(field.response.lineResponse)
              return field.response.map(el => {
                if (isLineResponseArray) {
                  return el.lineResponse.filter(el => Boolean(el)).join(', ');
                }
                return el.lineResponse || '';
              })
            }
            case 'GEOLOCATION': {
              var response = field.response || {};
              var responseArray = Object.entries(response).map(el => `${el[0]}: ${el[1]}`);
              return responseArray.join(', ');
            }
            case 'HIDDEN': {
              return field.response === undefined || field.response === null
                ? ''
                : field.response;
            }
            default: {
              var response =
                field.response === undefined || field.response === null ? '' : field.response;
              if (Array.isArray(response)) {
                return response.join(', ');
              }
              return response;
            }
          }
        }).flat();
      sheet.appendRow([responseId, submittedAt, ...rowData]);
      return ContentService.createTextOutput(JSON.stringify({result: "success"})).setMimeType(ContentService.MimeType.JSON);
    }
  4. ‘새 배포’를 눌러주세요.


  5. 유형은 ‘웹 앱’, 액세스 권한이 있는 사용자는 ‘모든 사용자’로 설정해주세요.


  6. 액세스를 승인해주세요.


  7. ‘URL’을 복사해주세요.


  8. 왈라의 ‘연동하기’ 탭에서 ‘웹훅 관리’ 버튼을 눌러주세요.


  9. URL을 붙여넣고 웹훅을 추가해주세요.


  10. 변경 사항을 저장한 후, ‘웹훅 설정’에서 활성화 해주세요.


  11. 응답이 도착하면 구글시트에 응답 내용이 기록돼요.

개인 소유의 구글시트와 연동하기
  1. 구글시트의 ‘확장 프로그램’ 탭에서 ‘App Script’를 눌러주세요.


  2. 새 스크립트를 추가해주세요.


  3. 기본 내용을 모두 지운 후, 아래의 코드를 붙여넣어주세요.

    function doPost(e) {
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var sheet = ss.getSheets()[0];
      ss.setSpreadsheetTimeZone('Asia/Seoul');
      // Parsing the POST data to get the required data
      var data = JSON.parse(e.postData.contents);
      
      var formAnswers = data.form_answers;
      var submittedAt = new Date(data.form_response.submitted_at);
    
      var responseId = data.form_response.response_id.slice(0,10);
      // First row: labels
      if (sheet.getLastRow() === 0) {
        var fieldLabels = formAnswers.map(function(answer) {
          if (answer.type === 'RADIO_GRID' || answer.type === 'CHECKBOX_GRID') {
            return answer.response.map(el => `${answer.label} - ${el.lineLabel}`);
          }
          return answer.label
        }).flat();
        var headers = ['Response ID', 'Time Submitted', ...fieldLabels]
        sheet.appendRow(headers);
      } 
       var rowData = formAnswers.map(field => {
          switch (field.type) {
            case 'CHECKBOX':
            case 'RADIO': {
              var isResponseArray = Array.isArray(field.response);
              if (isResponseArray) {
                return field.response.filter(el => Boolean(el)).join(', ');
              }
              return field.response || '';
            }
            case 'CHECKBOX_GRID':
            case 'RADIO_GRID': {
              var isLineResponseArray = Array.isArray(field.response.lineResponse)
              return field.response.map(el => {
                if (isLineResponseArray) {
                  return el.lineResponse.filter(el => Boolean(el)).join(', ');
                }
                return el.lineResponse || '';
              })
            }
            case 'GEOLOCATION': {
              var response = field.response || {};
              var responseArray = Object.entries(response).map(el => `${el[0]}: ${el[1]}`);
              return responseArray.join(', ');
            }
            case 'HIDDEN': {
              return field.response === undefined || field.response === null
                ? ''
                : field.response;
            }
            default: {
              var response =
                field.response === undefined || field.response === null ? '' : field.response;
              if (Array.isArray(response)) {
                return response.join(', ');
              }
              return response;
            }
          }
        }).flat();
      sheet.appendRow([responseId, submittedAt, ...rowData]);
      return ContentService.createTextOutput(JSON.stringify({result: "success"})).setMimeType(ContentService.MimeType.JSON);
    }
  4. ‘새 배포’를 눌러주세요.


  5. 유형은 ‘웹 앱’, 액세스 권한이 있는 사용자는 ‘모든 사용자’로 설정해주세요.


  6. 액세스를 승인해주세요.


  7. ‘URL’을 복사해주세요.


  8. 왈라의 ‘연동하기’ 탭에서 ‘웹훅 관리’ 버튼을 눌러주세요.


  9. URL을 붙여넣고 웹훅을 추가해주세요.


  10. 변경 사항을 저장한 후, ‘웹훅 설정’에서 활성화 해주세요.


  11. 응답이 도착하면 구글시트에 응답 내용이 기록돼요.

주식회사 파프리카데이터랩

서울특별시 강남구 역삼로 557

사업자등록번호: 660-88-02002

통신판매업신고번호: 제2022-서울관악-0879

주식회사 파프리카데이터랩

서울특별시 강남구 역삼로 557

사업자등록번호: 660-88-02002

통신판매업신고번호: 제2022-서울관악-0879

주식회사 파프리카데이터랩

서울특별시 강남구 역삼로 557

사업자등록번호: 660-88-02002

통신판매업신고번호: 제2022-서울관악-0879