Guides
Guides
Guides
Survey Form Webhook Guidelines
Survey Form Webhook Guidelines
Survey Form Webhook Guidelines
August 31, 2023
August 31, 2023
August 31, 2023
The existing app.walla.my does not currently offer this feature. Please note that you should use the open beta version at app.wallaform.com.
Creating a Google Sheet
1-a. When Creating a New One
Access Google Drive and create a new Google Sheet.
1-b. When Already Linked to Walaa and Exporting Before Reconnecting
Select the already in-use Google Sheet, make a copy of it.
Once the copy is created, proceed with the following 2 steps.
If you want to delete the existing Google Sheet:
Click the toggle on the right side of the Google Sheet integration.
Confirm that the toggle is set to OFF along with the Google Sheet deletion message.
Google Apps Script Configuration
In the Google Sheet, select the top menu "Extensions" > "Apps Script."
In the code editor that appears, delete the existing code and paste the code below.
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);
}
Deploy as a Web App
In the code editor's top menu, select "Deploy" > "New Deployment."
Click the "Settings" button, then choose "Web App."
Provide a name (e.g., test1) and be sure to set access rights to 'Anyone.'
🤨 액세스 권한… 모두라구요…?
🙂 해당 코드에는 원본데이터를 읽거나 내보내는 코드가 포함되어있지 않습니다.
왈라와 Typeform의 웹훅 요청에 맞게, 데이터를 구글 시트에 쓰는 작업 만을 포함합니다.
따라서, 해당 웹앱의 주소가 노출되더라도, 데이터가 유출될 걱정은 없으며,
만약 노출된다면 새로운 배포를 통해 새로운 주소를 받으실 수 있습니다
Finally, click "Deploy," and an "Authorization Required" button will appear.
Click it to proceed with authorization.
Click on your own Google account that created the Google Sheet.
Click "advanced" at the bottom left, then proceed with the unsafe version at the bottom.
Copy the URL of the web app
Copy the URL of the web app that appears after deployment.
Integration with the Walla Platform (Webhook)
Access the Walla platform page and select the project you want to integrate.
On the "Integration" page, click the "Add New Webhook" button.
Enter a name freely and paste the URL of the web app copied earlier.
Since the current webhook does not provide test requests, save the webhook and return to the integration.
Testing and Verification
Submit responses for the project in the Walla platform to confirm that data is being sent to the Google Sheet via the webhook.
The existing app.walla.my does not currently offer this feature. Please note that you should use the open beta version at app.wallaform.com.
Creating a Google Sheet
1-a. When Creating a New One
Access Google Drive and create a new Google Sheet.
1-b. When Already Linked to Walaa and Exporting Before Reconnecting
Select the already in-use Google Sheet, make a copy of it.
Once the copy is created, proceed with the following 2 steps.
If you want to delete the existing Google Sheet:
Click the toggle on the right side of the Google Sheet integration.
Confirm that the toggle is set to OFF along with the Google Sheet deletion message.
Google Apps Script Configuration
In the Google Sheet, select the top menu "Extensions" > "Apps Script."
In the code editor that appears, delete the existing code and paste the code below.
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);
}
Deploy as a Web App
In the code editor's top menu, select "Deploy" > "New Deployment."
Click the "Settings" button, then choose "Web App."
Provide a name (e.g., test1) and be sure to set access rights to 'Anyone.'
🤨 액세스 권한… 모두라구요…?
🙂 해당 코드에는 원본데이터를 읽거나 내보내는 코드가 포함되어있지 않습니다.
왈라와 Typeform의 웹훅 요청에 맞게, 데이터를 구글 시트에 쓰는 작업 만을 포함합니다.
따라서, 해당 웹앱의 주소가 노출되더라도, 데이터가 유출될 걱정은 없으며,
만약 노출된다면 새로운 배포를 통해 새로운 주소를 받으실 수 있습니다
Finally, click "Deploy," and an "Authorization Required" button will appear.
Click it to proceed with authorization.
Click on your own Google account that created the Google Sheet.
Click "advanced" at the bottom left, then proceed with the unsafe version at the bottom.
Copy the URL of the web app
Copy the URL of the web app that appears after deployment.
Integration with the Walla Platform (Webhook)
Access the Walla platform page and select the project you want to integrate.
On the "Integration" page, click the "Add New Webhook" button.
Enter a name freely and paste the URL of the web app copied earlier.
Since the current webhook does not provide test requests, save the webhook and return to the integration.
Testing and Verification
Submit responses for the project in the Walla platform to confirm that data is being sent to the Google Sheet via the webhook.
The existing app.walla.my does not currently offer this feature. Please note that you should use the open beta version at app.wallaform.com.
Creating a Google Sheet
1-a. When Creating a New One
Access Google Drive and create a new Google Sheet.
1-b. When Already Linked to Walaa and Exporting Before Reconnecting
Select the already in-use Google Sheet, make a copy of it.
Once the copy is created, proceed with the following 2 steps.
If you want to delete the existing Google Sheet:
Click the toggle on the right side of the Google Sheet integration.
Confirm that the toggle is set to OFF along with the Google Sheet deletion message.
Google Apps Script Configuration
In the Google Sheet, select the top menu "Extensions" > "Apps Script."
In the code editor that appears, delete the existing code and paste the code below.
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);
}
Deploy as a Web App
In the code editor's top menu, select "Deploy" > "New Deployment."
Click the "Settings" button, then choose "Web App."
Provide a name (e.g., test1) and be sure to set access rights to 'Anyone.'
🤨 액세스 권한… 모두라구요…?
🙂 해당 코드에는 원본데이터를 읽거나 내보내는 코드가 포함되어있지 않습니다.
왈라와 Typeform의 웹훅 요청에 맞게, 데이터를 구글 시트에 쓰는 작업 만을 포함합니다.
따라서, 해당 웹앱의 주소가 노출되더라도, 데이터가 유출될 걱정은 없으며,
만약 노출된다면 새로운 배포를 통해 새로운 주소를 받으실 수 있습니다
Finally, click "Deploy," and an "Authorization Required" button will appear.
Click it to proceed with authorization.
Click on your own Google account that created the Google Sheet.
Click "advanced" at the bottom left, then proceed with the unsafe version at the bottom.
Copy the URL of the web app
Copy the URL of the web app that appears after deployment.
Integration with the Walla Platform (Webhook)
Access the Walla platform page and select the project you want to integrate.
On the "Integration" page, click the "Add New Webhook" button.
Enter a name freely and paste the URL of the web app copied earlier.
Since the current webhook does not provide test requests, save the webhook and return to the integration.
Testing and Verification
Submit responses for the project in the Walla platform to confirm that data is being sent to the Google Sheet via the webhook.
Get Started
Continue Reading
Continue Reading
Continue Reading
Editorial
Insights from Location Data
March 12, 2024
Editorial
Paprikan Canada Voyage : Inside and Beyond
February 16, 2024
GUIDES
The Marketer's Ace: Hidden Fields
February 14, 2024
Editorial
To You Who Has Been Staring at Data for 10 Hours
January 23, 2024
Editorial
The Secret to Acquiring 30,000 Users with Minimal Marketing Budget
November 29, 2023
Editorial
Paprikan's Open Hiring Journey
November 28, 2023
Guides
Survey Form Webhook Guidelines
August 31, 2023
Editorial
Starting a Company and Living Together in Canada
June 12, 2023
Guides
Let's Group Data Using the Group By Feature
May 17, 2023
Editorial
The Tiny History of Walla
May 15, 2023
Editorial
Insights from Walla Team's Remarkable 220x Revenue Growth in Just 6 Months
April 28, 2024
Editorial
Insights from a Walla Team Co-founder Shared in a University Lecture
April 5, 2023
Guides
How to Create a One-Page Survey
April 5, 2023
Guides
How to Set Up Notifications for Surveys
April 5, 2023
Editorial
A Letter to Aspiring Entrepreneurs
March 29, 2023
Editorial
Why Walla Became Walla: The Story Behind the Name
March 21, 2023
Guides
The Perfect Way to Collect Location Data
March 15, 2023
Guides
Fully Understand Logic Setting
March 14, 2023
Guides
Exploring Walla Team's Philosophy Behind Pricing
March 14, 2023
GUIDES
Analyzing Response Sheet Data with GPT
March 8, 2023
Guides
The Most Efficient Way to Use Google Forms
March 8, 2023
Guides
Hidden Fields: How to Stop Hiding and Start Using
March 8, 2023
Editorial
Hello, It's Team Walla
March 10, 2023
Editorial
Why is it called Paprika Data Lab?
March 10, 2023
Editorial
Insights from Location Data
March 12, 2024
Editorial
Paprikan Canada Voyage : Inside and Beyond
February 16, 2024
GUIDES
The Marketer's Ace: Hidden Fields
February 14, 2024
Editorial
To You Who Has Been Staring at Data for 10 Hours
January 23, 2024
Editorial
The Secret to Acquiring 30,000 Users with Minimal Marketing Budget
November 29, 2023
Editorial
Paprikan's Open Hiring Journey
November 28, 2023
Guides
Survey Form Webhook Guidelines
August 31, 2023
Editorial
Starting a Company and Living Together in Canada
June 12, 2023
Guides
Let's Group Data Using the Group By Feature
May 17, 2023
Editorial
The Tiny History of Walla
May 15, 2023
Editorial
Insights from Walla Team's Remarkable 220x Revenue Growth in Just 6 Months
April 28, 2024
Editorial
Insights from a Walla Team Co-founder Shared in a University Lecture
April 5, 2023
Guides
How to Create a One-Page Survey
April 5, 2023
Guides
How to Set Up Notifications for Surveys
April 5, 2023
Editorial
A Letter to Aspiring Entrepreneurs
March 29, 2023
Editorial
Why Walla Became Walla: The Story Behind the Name
March 21, 2023
Guides
The Perfect Way to Collect Location Data
March 15, 2023
Guides
Fully Understand Logic Setting
March 14, 2023
Guides
Exploring Walla Team's Philosophy Behind Pricing
March 14, 2023
GUIDES
Analyzing Response Sheet Data with GPT
March 8, 2023
Guides
The Most Efficient Way to Use Google Forms
March 8, 2023
Guides
Hidden Fields: How to Stop Hiding and Start Using
March 8, 2023
Editorial
Hello, It's Team Walla
March 10, 2023
Editorial
Why is it called Paprika Data Lab?
March 10, 2023
Editorial
Insights from Location Data
March 12, 2024
Editorial
Paprikan Canada Voyage : Inside and Beyond
February 16, 2024
GUIDES
The Marketer's Ace: Hidden Fields
February 14, 2024
Editorial
To You Who Has Been Staring at Data for 10 Hours
January 23, 2024
Editorial
The Secret to Acquiring 30,000 Users with Minimal Marketing Budget
November 29, 2023
Editorial
Paprikan's Open Hiring Journey
November 28, 2023
Guides
Survey Form Webhook Guidelines
August 31, 2023
Editorial
Starting a Company and Living Together in Canada
June 12, 2023
Guides
Let's Group Data Using the Group By Feature
May 17, 2023
Editorial
The Tiny History of Walla
May 15, 2023
Editorial
Insights from Walla Team's Remarkable 220x Revenue Growth in Just 6 Months
April 28, 2024
Editorial
Insights from a Walla Team Co-founder Shared in a University Lecture
April 5, 2023
Guides
How to Create a One-Page Survey
April 5, 2023
Guides
How to Set Up Notifications for Surveys
April 5, 2023
Editorial
A Letter to Aspiring Entrepreneurs
March 29, 2023
Editorial
Why Walla Became Walla: The Story Behind the Name
March 21, 2023
Guides
The Perfect Way to Collect Location Data
March 15, 2023
Guides
Fully Understand Logic Setting
March 14, 2023
Guides
Exploring Walla Team's Philosophy Behind Pricing
March 14, 2023
GUIDES
Analyzing Response Sheet Data with GPT
March 8, 2023
Guides
The Most Efficient Way to Use Google Forms
March 8, 2023
Guides
Hidden Fields: How to Stop Hiding and Start Using
March 8, 2023
Editorial
Hello, It's Team Walla
March 10, 2023
Editorial
Why is it called Paprika Data Lab?
March 10, 2023