Fix Spraye 'Service Scheduled' trigger: automation workarounds

Spraye's Service Scheduled trigger not firing in Zapier? Check the webhook URL and Finalize & Notify, then use a state table so follow-ups don't depend on it.

Nov 13, 2026
Fix Spraye 'Service Scheduled' trigger: automation workarounds
If Spraye's "Service Scheduled" trigger isn't firing in Zapier, check two settings before you rebuild anything. Most of the time the webhook URL never made it into Spraye, or Spraye is holding the trigger until someone finalizes the route. If you still can't count on it, keep your own record of each property's dates from the triggers Spraye does send, and run your follow-ups from that.
Lawn care crew mowing a property, the kind of visit the Spraye Service Scheduled trigger should report. Photo by Michael Smith on Unsplash
Lawn care crew mowing a property, the kind of visit the Spraye Service Scheduled trigger should report. Photo by Michael Smith on Unsplash

Why "Service Scheduled" doesn't fire

We see three causes, in this order:
  1. The webhook URL isn't in Spraye. Spraye triggers don't work like most Zapier apps. For each trigger you use, you copy the webhook URL from the Zap's trigger step and paste it into Spraye on the Settings page. If you rebuilt or duplicated the Zap, the URL changed and Spraye is still sending to the old one.
  2. Spraye is waiting for "Finalize & Notify." If "Auto-send service scheduled notifications at time of scheduling" is off on the Main Settings page, scheduling a service doesn't fire the trigger. It fires when someone selects the services on the Scheduled Routes page and clicks Finalize & Notify. Until then those services show "Notifications Pending." Teams turn this setting off to delay customer emails and don't realize it delays the Zap too.
  3. The Zap is on an old version of the Spraye app. A Zap keeps the Spraye app version that was current when you built it. Spraye's guide says to delete and recreate the Zap to get newer features.
Spraye's Zapier app is also invite-only. If you can't find Spraye in the Zap editor at all, email support@spraye.io from the address on your Zapier account and ask for an invite. Spraye behavior described here matches Spraye's Zapier Integration Guide as of November 2026.

Quick diagnostic checklist

  1. Schedule one test service and note the time.
  2. Open the Zap's history in Zapier. If there's no run, the problem is in Spraye, not the Zap.
  3. Compare the webhook URL on Spraye's Settings page with the one in the Zap's trigger step.
  4. Check the Scheduled Routes page. If the test service says Notifications Pending, click Finalize & Notify and watch for the run.
  5. If a run shows up, confirm it carries Property ID and Customer ID. You'll need both below.

What to send Spraye support

If the URL matches, the route is finalized, and nothing fires, email support@spraye.io with:
  • The trigger name: Service Scheduled
  • The webhook URL you pasted into Settings
  • When you scheduled the test service, with your account time zone
  • Whether auto-send is on or off
  • Any Zap run IDs, if it fired sometimes

A fallback that doesn't depend on one trigger

Spraye's Zapier search steps look up customers, properties, estimates, tags and programs. None of them returns a property's scheduled services, so you can't wait a week and ask Spraye whether anything got scheduled. Record each event as it happens instead, and ask your own table.

Step 1: Build a state table

In Zapier Tables or Airtable, make one row per property with these fields:
  • Property ID (the key)
  • Customer ID and customer email
  • Estimate accepted date
  • First service scheduled date (blank until known)
  • Next scheduled date
  • Last service completed date

Step 2: Let three triggers fill it in

  • Estimate Accepted: create or update the row by Property ID and set the accepted date. This trigger sends Property ID, Customer ID and the accepted date.
  • Service Scheduled: find the row by Property ID, set the next scheduled date, and fill in the first scheduled date if it's blank.
  • Service Completed: set the last completed date. This trigger only sends the service name and customer email, so match on email. If that customer has more than one property, flag the row for someone to check instead of guessing.

Step 3: Run follow-ups from the table

A scheduled Zap runs once a day and reads the table, not Spraye:
  • Estimate accepted more than 7 days ago and no first service scheduled: send a "we haven't forgotten you" email or alert the office.
  • Last service completed more than 6 months ago and nothing scheduled: add them to a reactivation campaign.
If Service Scheduled misses an event, the worst case is a reminder to someone who already booked. Until you trust the trigger again, have the office check the "no visit scheduled" list before anything goes to customers.

Mistakes we see

Copying everything into SharePoint "for reporting"

It looks like a clean reporting layer, but it usually creates three problems:
  • You need a SharePoint list item ID as the true unique key.
  • Updates turn into create-vs-update logic problems.
  • Data falls out of sync over time.
If you use Go High Level, keep it for sending campaigns. Let the state table hold the dates.

Building campaigns off a single trigger

Customer journeys need state. If the scheduling trigger is unreliable, any campaign built straight on it is unreliable too.

Get help fixing your Spraye automations

A trigger you can't trust breaks every follow-up built on it. On a call, we'll check your Spraye trigger setup with you and map out the state table and daily follow-up Zap for your team. Book a free discovery call.