GroundCut + Twilio

Twilio handles every SMS GroundCut sends to your customers — booking confirmations, on-the-way notifications, day-before reminders, weather delays, time-for-next-cut reengagement, and more. Delivery webhooks update the notification log so you can see exactly which messages reached which customers. Outbound only at the moment.

What the integration does

  • Sends transactional SMS for 22+ event types — see the notification catalog in the as-built reference.
  • Receives delivery status webhooks (queued / sent / delivered / undelivered / failed) and updates notification_log.
  • Tenants can override the SMS template per event with {{variable}} placeholders.
  • STOP messages from customers update sms_opt_out on the customer record — TCPA-compliant out of the box.
  • Per-customer opt-out gates marketing-category sends; transactional sends bypass opt-out per regulator guidance.

What’s automated

  • Booking confirmation SMS fires immediately on /api/booking success.
  • Day-before reminder cron at 12:00 UTC sends to tomorrow’s customers (if notify_day_before_sms is on).
  • On-the-way SMS fires when the operator taps Start route — to the next customer on the route.
  • Weather delay SMS sent in bulk from the dashboard widget when you click Notify customers.
  • Reengagement SMS for lapsed customers via daily 14:00 UTC cron.
  • Twilio delivery webhooks run validateRequest signature checks; bounces flip notification_log.status.

Setup steps

  1. 1Twilio is preconfigured at the platform level. There’s nothing for tenants to wire up — every account uses the platform Twilio number for sends.
  2. 2Per-event toggles in /admin/settings → Notifications let you turn each SMS event on or off independently.
  3. 3Custom templates per event in /admin/settings → Notifications, with {{customer_name}}, {{service_name}}, {{date}}, {{time}}, {{tenant_name}}, {{track_url}} variables.
  4. 4No 10DLC registration is required from you — the platform handles A2P 10DLC compliance on the shared sender.

Related GroundCut features

  • Notifications system (Twilio is the SMS half; Resend is the email half).
  • Customer opt-out (sms_opt_out via inbound STOP webhook).
  • NotificationTimeline on customer detail (shows every send with delivery status).
  • Day-before reminder cron, weather rescheduling, reengagement.

Twilio integration FAQs

Can my customers reply to texts and reach me?+
Not at the moment. GroundCut sends outbound SMS only — replies arrive at the platform Twilio number, not at you. The exception is STOP / UNSUBSCRIBE, which is auto-processed to set sms_opt_out on the customer. If a customer needs to reach you, the SMS body includes your business phone (set in /admin/settings → Booking page) and your booking URL. Inbound two-way SMS is on the roadmap but not built today.
Do I have to pay Twilio separately?+
No. SMS sends are paid by the platform under the GroundCut Twilio account. The cost is included in your $99/mo subscription. Heavy senders may eventually hit fair-use limits but typical residential lawn-care volumes (booking + reminders + on-the-way + weather + reengagement) sit well within the included allowance.
Is the SMS sender number the same for every tenant?+
Yes — every tenant sends from the same shared Twilio number. The sender ID is GroundCut’s, and the message body identifies your business (via {{tenant_name}}). Branded short codes per tenant aren’t available; that would require per-tenant 10DLC registration which is not in the current model.
How does the STOP keyword work?+
When a customer texts STOP to the platform Twilio number, Twilio’s built-in compliance layer prevents future sends to that number. Our inbound webhook also marks the customer’s sms_opt_out flag in the database with opt_out_source="inbound_sms". Email opt-out flows through Resend’s unsubscribe link similarly. Marketing-category notifications gate on these flags; transactional notifications (booking confirmation, on-the-way) still send because regulator guidance permits them.
What if Twilio fails to deliver a message?+
The Twilio status webhook updates notification_log.status — possible end states are sent, delivered, undelivered, and failed (with ErrorMessage and ErrorCode). The customer detail page’s NotificationTimeline surfaces failed sends. The most common failure is a customer’s carrier blocking the number; the second most common is a typo in the customer’s phone field. Editing the phone number triggers re-sends on subsequent events.

Try GroundCut + Twilio free for 14 days

Pro features unlocked during the trial. Connect on day one and see it work with your real data.

14-day free trial · No card required · Cancel any time