How to Auto-Send New Bookings to Google Sheets via Zapier
You can automatically send new bookings to Google Sheets using Zapier in about 10 minutes. The short version: create a Zap that fires whenever Cartoply records a new booking, then map the booking fields (name, address, date, assigned tech) to columns in a Google Sheet. Every new job lands in the spreadsheet the moment it's confirmed — no copy-paste, no manual dispatch log updates.
If your dispatcher, ops lead, or office manager still types job details into a shared sheet by hand, this guide eliminates that entirely. Here's exactly how to build it.
How to Send New Bookings to Google Sheets with Zapier
- In Zapier, create a new Zap and select Webhooks by Zapier as the trigger app.
- Choose Catch Hook as the trigger event and copy the webhook URL Zapier generates.
- In Cartoply, paste that webhook URL into your booking workflow's webhook notification field.
- Submit a test booking in Cartoply so Zapier captures a live data sample.
- Add Google Sheets as the action app and choose Create Spreadsheet Row.
- Map booking fields (customer name, address, scheduled date, assigned tech) to your Sheet columns, then publish the Zap.
Why a Live Booking Log Matters for Field Teams
When a customer books online, the clock starts. Your tech needs to know the job is coming. Your dispatcher needs to confirm no overlap. Your office manager needs the address for invoicing. If any of those three people are waiting for someone else to type the details into a spreadsheet, you have a bottleneck.
A Zapier-powered Google Sheet removes the human relay. The row appears the instant the booking is confirmed — customer name, service address, scheduled date and time, and which tech or rep was automatically assigned. No one has to ask "did you add that job yet?" The answer is always yes, because a machine did it before anyone finished reading the confirmation email.
This matters most on high-volume days. A roofing company getting 30 inbound bookings after a hailstorm, or a pest control operation running seasonal surge, can't afford manual entry at scale. Handling that inbound surge automatically is the difference between a tight dispatch and a chaotic one.
Setting Up Your Google Sheet Before You Build the Zap
Build the destination before you build the automation. Open a new Google Sheet and create a header row with these columns — add or remove based on what your team actually uses:
- Timestamp — when the booking was submitted
- Customer Name
- Service Address
- City / ZIP
- Service Type
- Scheduled Date
- Scheduled Time
- Assigned Tech / Rep
- Booking Status (confirmed, pending, etc.)
- Deposit Paid? (yes/no — useful if you collect payment at booking)
Having clean column headers before you map the Zap saves significant back-and-forth. Zapier's field mapper shows your Sheet columns as a dropdown — if they're already labeled correctly, the mapping takes under two minutes.
If you're also collecting deposits or full prepayment at booking, add a "Payment Amount" column. Cartoply passes Stripe payment data through the webhook payload, so you can log whether a customer paid $0, a $50 deposit, or the full job total. That's one fewer thing to chase down before dispatch. Here's more on collecting payment before a field visit and why it tightens your whole operation.
Mapping Cartoply Booking Fields in Zapier
After Zapier catches your test booking, you'll see the raw data payload. Cartoply sends everything collected during the booking flow: customer contact info, the service address the customer entered, the date and time slot they picked, and — critically — the tech or rep that Cartoply's territory routing assigned to that booking automatically.
That last field is the one most scheduling tools can't send, because most scheduling tools don't know which person owns a given ZIP code. Cartoply's territory-aware booking features assign the right tech at the moment of booking based on the customer's address — so by the time the Zap fires, the "Assigned Tech" field is already populated. You're not logging a job and then figuring out who covers it. The routing already happened.
Map each payload field to its Sheet column in Zapier's action step. Use Zapier's "Format" step if you want to split a full address into street, city, and ZIP as separate columns — useful for filtering your Sheet by service area later.
Testing and Validating Your Zap
Run at least three test bookings before you call this done. Check for:
- All columns populated — no blank cells where data should be
- Date format consistency — Zapier sometimes passes ISO timestamps; use a Format step to convert to MM/DD/YYYY if your team expects that
- Assigned tech field accuracy — confirm the right person is listed for addresses in different ZIP codes or territories
- Duplicate rows — if a customer submits twice, does your Sheet show two rows? Decide upfront whether to filter duplicates or flag them
Once the Zap is live, check the Sheet after your first real booking day. Zapier's task history shows exactly what fired and when — if a row is missing, the error is almost always a misconfigured webhook URL or a field that wasn't mapped.
You can also pair this Zap with a second one that posts to Slack. If your dispatch team lives in Slack, adding a Slack notification for every new booking means the Sheet serves as the permanent record while Slack handles the real-time alert. Both Zaps can run from the same webhook trigger.
FAQ
Can Zapier send Cartoply bookings to an existing Google Sheet?
Yes. When you set up the Google Sheets action in Zapier, you select your Google account, then choose any existing spreadsheet and worksheet by name. Zapier appends a new row to the bottom of the sheet each time a booking comes in, leaving your existing data untouched. Make sure your header row is in row 1 so Zapier can detect your column names correctly.
What booking data does Cartoply send through the webhook?
Cartoply's webhook payload includes the customer's name, email, phone number, service address, selected date and time, service type, the assigned technician or rep (determined by territory routing), and payment status if a deposit or prepayment was collected via Stripe. You can map any or all of these fields to columns in your Google Sheet.
Do I need a paid Zapier plan to connect Cartoply to Google Sheets?
Zapier's free plan supports two-step Zaps and up to 100 tasks per month, which may be enough for low-volume teams. If you add a Format step to clean up date fields, that makes it a three-step Zap, which requires a Zapier Starter plan. Most field service teams processing more than 100 bookings per month will need a paid Zapier tier regardless.
Can I filter which bookings go into the Sheet — for example, only confirmed ones?
Yes. Add a Zapier "Filter" step between the trigger and the Google Sheets action. Set the filter to only continue when the booking status field equals "confirmed." Pending or cancelled bookings will still fire the webhook but won't create a row. You can also create separate Zaps that route different booking statuses to different sheets or tabs.
Ready to route your bookings automatically — and log every one without lifting a finger?
14-day free trial — no credit card required. $7/seat/month after that.
Start free trial →Get field service tips in your inbox
Scheduling, dispatch, and territory strategy for home service teams. No spam, unsubscribe anytime.
By subscribing you agree to receive emails from Cartoply. Unsubscribe anytime. See our Privacy Policy.