Home/Integrations/Google Sheets integration (via Zapier)

Google Sheets

Google Sheets integration (via Zapier)

Send new VGraple CRM leads, contacts and inbound messages to Google Sheets rows, and send WhatsApp templates when a row is added or updated, using Zapier.

By Chirag Darji · Updated 29 Aug 2026 · 5 min read

On this page
  1. What syncs
  2. Setup
  3. Three recipes
  4. Field mapping that works
  5. How the connection works
  6. Testing before going live
  7. Limits and gotchas
Contacts in VGraple CRM: 420 contacts with tags, channel filters, saved segments and opt-in status

This integration runs through Zapier, not a one-click connector: you connect the VGraple CRM app in Zapier with an API key, connect Google Sheets with its own Zapier app, and build Zaps that move data between them. VGraple CRM's six instant triggers (New Inbound Message, New Contact, New Lead, Lead Stage Changed, New Form Submission, Contact Opted Out), three actions (Send Template Message, Create or Update Contact, Create Lead) and Find Contact search are the building blocks.

What syncs

DataDirectionTiming
New lead (name, phone, email, pipeline, stage, source, campaign, custom fields)VGraple CRM to SheetsInstant trigger, row on Zapier's next run
New contact, contact opted outVGraple CRM to SheetsInstant
Inbound message text, sender, channel, timeVGraple CRM to SheetsInstant
Lead stage changeVGraple CRM to SheetsInstant
New or updated row with phoneSheets to VGraple CRM (contact upsert, lead, template send)Zapier polling interval

Setup

  1. In VGraple CRM go to Settings, then API Keys, create a key named "Zapier" and copy it (Owner only).
  2. In Zapier, create a Zap. Search for VGraple CRM as the trigger or action app and connect it by pasting the API key; Zapier tests it with GET /api/v1/me and labels the connection with your organisation.
  3. Connect Google Sheets in the other step with its own Zapier authentication.
  4. Map the fields (the recipes below list the usual ones), test each step with real data, and turn the Zap on. A VGraple CRM trigger creates a webhook subscription that shows a "Zapier" badge under Settings, then Webhooks.
  5. Watch the first few runs in Zapier's history; errors from VGraple CRM name the exact field or Meta error.

Three recipes

  • New Lead -> Create Spreadsheet Row. The founder's morning sheet fills itself with every lead, its source and campaign; add a Filter step for leads above a value.
  • New or Updated Spreadsheet Row (status = Ship) -> Find Contact -> Send Template Message. An operations sheet drives shipping notifications with a utility template.
  • Contact Opted Out -> Update Spreadsheet Row. Keeps an offline marketing list honest so nobody re-imports opted-out numbers.

Field mapping that works

Map the lead's phone to a column formatted as text (Sheets drops leading plus signs and zeros from numbers), keep created time as ISO text, and add a column for the VGraple CRM lead ID so later updates can find the row. For Sheets-to-VGraple Zaps, the sheet needs one header row and a phone column in international format; the Create or Update Contact action upserts by phone, so re-running a Zap never duplicates a contact.

How the connection works

VGraple CRM's Zapier app is a thin layer over the public REST API. When you turn on a Zap that starts with a VGraple CRM trigger, Zapier calls POST /api/v1/hooks with its callback URL and the event name, which creates a signed webhook subscription in your workspace; the event is delivered the moment it happens, not on a polling schedule. When a Zap ends with a VGraple CRM action, Zapier calls the matching endpoint (POST /api/v1/contacts, POST /api/v1/leads or POST /api/v1/messages) with your API key, and the result, including any Meta error on a template send, is returned to the Zap's run history in plain words. Dynamic dropdowns for templates and pipelines load live from GET /api/v1/templates and GET /api/v1/pipelines, so a Zap always offers your current approved templates. Because the subscription lives in the same table as Settings, Webhooks, it shows there with a "Zapier" badge and a delivery count, and it is removed cleanly when the Zap is turned off.

Testing before going live

Build the Zap against a test contact (your own number) first: run the trigger with real data, check the mapped fields in Zapier's test output, send the template to yourself and read it on a handset. For Google Sheets-to-VGraple Zaps, confirm the phone reaches VGraple CRM in international format with no spaces or leading zero; for VGraple-to-Google Sheets Zaps, confirm the record created in Google Sheets carries the VGraple CRM ID so later updates can find it. Turn the Zap on only after both directions behave, and watch the first day's runs in Zapier's history.

Limits and gotchas

  • Sends from Zapier must use an approved template; free-form messages are not available outside the inbox and flows. Consent, messaging limits, the US marketing pause and delivery protection apply exactly as in the app.
  • API keys are Owner-only secrets. Deleting the "Zapier" endpoint in Settings breaks the Zap until it is turned off and on.
  • The rate limit is 600 requests per key per hour; bulk backfills should run in batches.
  • Multi-step Zaps, filters and paths need a paid Zapier plan (a Zapier limit, not ours).
  • Phone numbers must be in international format for Create or Update Contact and Send Template Message; use Zapier's Formatter to strip spaces and leading zeros.

The Zapier help article documents every trigger and action field; the REST API quickstart covers anything Zapier has no step for yet.

Frequently asked questions

Is this a native Google Sheets connector?
No. It runs through Zapier: VGraple CRM's Zapier app on one side, Google Sheets' on the other.
Can a new row send a WhatsApp message?
Yes. Google Sheets' New or Updated Spreadsheet Row trigger, then VGraple CRM's Send Template Message action with an approved template and the row's phone number.
Can I log every inbound message to a sheet?
Yes, with the New Inbound Message trigger and Create Spreadsheet Row; keep the sheet private, it will contain customer messages.
How fast do rows appear?
VGraple CRM triggers are instant; Google Sheets triggers poll on Zapier's interval (1 to 15 minutes by Zapier plan).
Can I import a whole sheet of contacts?
Use the CSV importer in VGraple CRM for bulk (up to 5,000 rows per file); Zapier is for ongoing rows.
Do I need a paid Zapier plan?
Single-step Zaps run on Zapier's free plan; filters and multi-step Zaps need a paid plan.

Run your WhatsApp on VGraple CRM

Free forever plan, official Meta WhatsApp Business API, set up in 15 minutes. No card needed.