How to send data from ChatSyncs to an external app (Google Sheets, a CRM, Zapier, Make.com, Airtable, your own server) whenever a subscriber submits a WhatsApp Flow or Input Flow, clicks a Postback button, or shares their location — including a full walkthrough of wiring a Google Apps Script endpoint as the destination. Use when a customer asks how to send form submissions to Google Sheets automatically, how to connect ChatSyncs to a CRM or Zapier, or why their webhook isn’t receiving data.
An Out-bound Webhook sends data from ChatSyncs to another application whenever a specific
action happens — a subscriber submits a WhatsApp Flow, completes an Input Flow, clicks a
Postback button, or shares their location. Instead of that data living only inside ChatSyncs,
it’s automatically forwarded to Google Sheets, a CRM, your own server, Zapier, Make.com,
Airtable, or any other endpoint that can receive an HTTP request.
Example: send Input Flow submissions to Google Sheets
Say you built a Customer Registration Form using an Input Flow
or WhatsApp Flow with fields for Full Name, Phone Number, Business
Type, Service Interested, and Demo Date. When a subscriber submits it, an Out-bound Webhook can
push that submission straight into a Google Sheet — no manual copying, no server of your own
required. The rest of this page walks through that exact setup, since it’s the most common use
case.
User submits WhatsApp Flow or Input Flow ↓ChatSyncs Triggered ↓Out-bound Webhook ↓Google Apps Script ↓Google Sheet ↓Columns Created Automatically ↓Data Stored Automatically
Create a new, empty Google Sheet. You don’t need to add any columns — they’re created
automatically later.
2
Open Apps Script
Inside the sheet, go to Extensions → Apps Script.
3
Paste the script
Delete any existing code and paste a doPost(e) function that reads the incoming webhook
payload and appends it as a row — creating header columns automatically the first time
each field name is seen:
function doPost(e) { var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var data = JSON.parse(e.postData.contents); var headers = Object.keys(data); if (sheet.getLastRow() == 0) { sheet.appendRow(headers); } var values = headers.map(function(key) { return data[key]; }); sheet.appendRow(values); return ContentService .createTextOutput("Success") .setMimeType(ContentService.MimeType.TEXT);}
4
Deploy as a Web App
Click Deploy → New deployment, set Select type to Web app, Execute as to
Me (your Google account), and Who has access to Anyone (or Anyone with the
link) — not Only myself, or ChatSyncs won’t be able to reach it. Click Deploy and
authorize the requested Google permissions.
5
Copy the Web App URL
Google gives you a URL like
https://script.google.com/macros/s/XXXXXXXXXXXX/exec. Copy it — this is your webhook URL.
Whenever a webhook payload arrives, the Apps Script reads its JSON keys and adds any column
that doesn’t already exist — you never edit the sheet by hand. For example, a payload from a
Postback trigger like:
This is the simplest and most common way to connect a ChatSyncs WhatsApp Flow or Input Flow
directly to Google Sheets without running your own server — the same approach works for any
endpoint that accepts an HTTP POST, including a CRM, Zapier, Make.com, or Airtable.
Saved webhooks appear in the Out-bound Webhook list with three actions:
View Report — see webhook logs and activity, and check whether data was sent
successfully.
Edit — update the webhook URL, triggers, or selected data fields at any time.
Delete — permanently remove the webhook; ChatSyncs stops sending it data immediately.
Use View Report to confirm your Google Sheet, CRM, or server is actually receiving the
data — don’t assume it’s working just because the webhook saved successfully.
How do I send WhatsApp form submissions to Google Sheets automatically?
Deploy a Google Apps Script doPost web app on the target sheet, copy its URL, then create
an Out-bound Webhook in Bot Manager with that URL, trigger it on User Input Flow (or
Postback / Location), and make sure Input Flow Data is turned on.
Why isn't my Google Sheet receiving any data?
Check three things: the Apps Script deployment’s Who has access is set to Anyone
(not “Only myself”), the Out-bound Webhook URL in ChatSyncs exactly matches the deployed
Web App URL, and the right trigger/fields are enabled. Use View Report on the webhook to
see whether ChatSyncs is sending anything at all.
Why are my form answers missing even though the webhook fires?
The Input Flow Data field toggle is probably off. Without it, the webhook still fires
and sends subscriber metadata, but not the actual question answers.
Do I need to manually create columns in my Google Sheet?
No — the Apps Script reads the JSON keys in each payload and adds any missing column
automatically, including for new fields you start sending later.
Can I send data to something other than Google Sheets?
Yes — an Out-bound Webhook sends a plain HTTP request, so any endpoint that can receive one
works: a CRM, your own server, Zapier, Make.com, or Airtable.
“Only myself” access blocks ChatSyncs entirely — the Apps Script deployment’s Who has
access must be Anyone or Anyone with the link.
Input Flow Data must be explicitly enabled — it’s the one field that carries the actual
form answers; everything else is just subscriber metadata.
The webhook URL must match the live deployment — redeploying a new version in Apps
Script can change the URL, which then needs updating in ChatSyncs too.