Send Google Forms booking alerts to Slack
Every booking lands in the right staff channel, routed by service type, with a scannable date field and a calendar-link footer. No mentions, no urgency shouting, just clean informational alerts.
- Per-service-type channel routing
- Scannable time + customer fields
- Delivery log + retry on failure
The short answer
Build a booking form with five fields (customer, service, date/time, phone, notes). Route by service type to the right staff channel — #consult-bookings for consults, #training-bookings for training, etc. No mention; bookings are informational. Every submission posts within seconds with a Block Kit message tuned for scannability.
What a booking message needs
- Customer name: required. Surfaces at the top of the message for identification.
- Service type (dropdown), required. The primary routing signal. Consult / Training / Onboarding / Maintenance, pick the categories your team actually segments by.
- Date & time: required. The most-scanned field in the channel. Include timezone if staff are distributed.
- Phone: optional but valuable for confirmations and for staff to reach out before the slot.
- Notes (paragraph), optional. Lets the customer pre-flight any context ("First-time visitor", "Bringing two colleagues").
From form to staff channel in five steps
- 1Build the booking formAdd the five fields. Mark Customer / Service / Date required. Set the form's confirmation message to set customer expectations (e.g. 'We'll confirm within 1 hour by phone').
- 2Create Slack webhooks for each service channelOne per service team.
#consult-bookingsfor the consult team,#training-bookingsfor training, etc. The default (fallback) channel is usually#bookingsfor anything not matching a specific service. - 3Wire the form into RouteFormsSign up, add the form, paste the default webhook, install the Apps Script.
- 4Add routing rules per service typeSpecific first.
Service contains "Consult" → #consult-bookings,Service contains "Training" → #training-bookings, and so on. Use the rule generator "Booking by service" preset as the starting point. - 5Pick the Booking template + add calendar link in footerUse the “Booking” preset in the template generator , calendar icon, no mention, calendar-link footer. Replace the placeholder calendar URL with your team's actual booking calendar so staff can add the slot in one click.
The message shape that's scannable, not loud
:calendar: *New booking*
*Customer:* Sara Patel
*Service:* 60-min consult
*Date & time:* 2026-06-04 14:30 IST
*Phone:* +91 98xxxxxxxx
*Notes:* First-time visitor
Channel: #consult-bookings · Open in calendarThe calendar icon makes the message recognisable in a busy channel. No mention means staff aren't pinged out of focus. The footer link points at the calendar so staff can add the slot in one click.
One Slack workspace per client, one channel per service
For agencies handling bookings on behalf of multiple clients (cleaning services, consulting firms, salons), the standard pattern: each client has their own Slack workspace and you maintain a private channel per client's booking team. Routing rules in RouteForms dispatch from the form to the right private channel.
The agency planner is the worksheet for designing this, list each client, their forms, their per-service destinations, the routing rules.
Booking != calendar event
RouteForms posts the booking alert to Slack. It doesn't create the calendar event, doesn't hold the slot against double-booking, and doesn't notify the customer when the booking is confirmed. Those are separate workflows:
- Calendar event creation: needs either Form Director (Workspace add-on) or a separate Apps Script that creates the event via CalendarApp.
- Slot collision prevention: needs a real booking tool (Calendly, Cal.com, Acuity). Google Forms accepts duplicate submissions.
- Customer confirmation email: Google Forms' built-in confirmation message handles this. Add expected response time so customers know what to wait for.
Frequently asked questions
What fields does a booking form usually need?▾
Five typically: Customer name, Service type (dropdown, consult, training, onboarding, etc.), Date & time, Phone (optional), Notes (paragraph). Service type is the primary routing signal; date & time is the most-scanned field in the channel. Phone is often the easiest channel for staff to confirm bookings, so worth capturing.
Should booking alerts ping anyone?▾
Usually no. Bookings are informational, the team needs to know but doesn't need to drop what they're doing. Posts to #bookings without a mention let staff catch up on their next break. The exception is same-day bookings (Date & time = today), there's a case for routing those to a separate channel with @here.
How do I route different services to different staff?▾
Routing rules on the Service field. IF Service contains 'Consult' → #consult-bookings; IF Service contains 'Onboarding' → #onboarding-bookings; IF Service contains 'Training' → #training-bookings. Each channel maps to the staff team for that service. The rule generator at /tools/lead-routing-rules-generator ships a 'Booking by service' preset with this shape.
Will the booking appear on a calendar automatically?▾
Not from RouteForms, we're the Slack-side. For automatic calendar event creation, you'd need either Form Director (which handles Google Calendar natively) or a separate Apps Script trigger that creates the event. The Slack post is the human alert; calendar creation is downstream. The footer link in our booking template at /tools/google-forms-slack-notification-templates points to your calendar so staff can manually add the slot.
What if the same slot gets booked twice?▾
Google Forms by itself doesn't prevent double-booking, two people submitting at the same minute both succeed. To prevent this you need either a real booking tool (Cal.com, Calendly) that holds the slot or an Apps Script layer that validates against existing bookings before accepting. RouteForms's role is the alerting layer, not the booking engine.
How should the time field be formatted?▾
Include the timezone explicitly if staff are in multiple zones — 'Tuesday Oct 15, 2:30 PM IST' is more scannable than '2024-10-15 14:30'. The form can use a free-text field with the timezone in the question label, or a separate timezone dropdown. Routing rules can also normalise: IF Date contains 'today' or matches a today-pattern → #urgent-bookings.
Can I post a no-show alert when the customer doesn't show up?▾
Not from the booking form itself, the form fires once at submission. No-show tracking is a separate workflow: staff marks the booking as no-show in their CRM / spreadsheet, and a separate automation posts to Slack. RouteForms's piece is the booking alert; downstream behaviour is downstream.
How fast does the alert reach the staff channel?▾
Within a couple of seconds. Apps Script's form-submit trigger fires immediately; RouteForms processes the routing rules and posts. For bookings specifically, the latency rarely matters, the customer's not waiting on Slack to confirm, but the immediate post means staff can prep before the slot.
Route bookings to the right staff channel
Per-service routing rules, scannable message format, delivery log. Free for 30 responses a month.
Keep reading
How the per-service rules evaluate in production.
Broader hub, recommended channel structures for booking-heavy industries (salons, consultancies, healthcare).
Booking is one of five presets, pick, edit your calendar URL in the footer, copy.
All the real options for delivering Google Form responses to Slack, ranked by fit.