Anonymous Booking with Salesforce Scheduler: Step-by-Step Guide

Enable customers to book appointments without logging in using Salesforce Scheduler, Flow, and Experience Cloud. This guide covers the object model, configuration steps, and embedding options for external sites.

Overview

Salesforce Scheduler provides a native, scalable way to offer anonymous (guest) booking for services such as field visits, repair centers, consultations, and more. By combining Scheduler objects, Flows, and Experience Cloud (or Lightning Out for external sites), you can let customers book appointments without creating accounts while automatically assigning the right resource based on location, time zone, and skills.

Required Licenses

Technician (Agent): Scheduler License — delivers services and gets booked.
Managers / Greeters: Greeter License — manage check-ins and schedules.
Customer (Guest): No license required to book as a guest.

Key Objects in Salesforce Scheduler

  • Operating Hours — When appointments can be booked.
  • Time Slots — Available windows derived from operating hours and resource capacity.
  • Service Territory — Logical or physical locations for services.
  • Service Resource — The people delivering services (linked to Users).
  • Service Territory Member — Assignment of Service Resources to Territories.
  • Work Type / Work Type Groups — Define services, durations and required skills.
  • Location_Timezone_Mapping__mdt — Custom metadata mapping customer location to time zones.

Step-by-step Implementation

Step 1 — Define Operating Hours

Create Operating Hours records for each territory or location (e.g., Eastern, Central), and include business days, open/close times and holidays.

Step 2 — Time Slots

Time slots are generated from operating hours, service rules and resource availability. Ensure slots align with work type durations and buffer times.

Step 3 — Create Service Territories

Create territories (Eastern, Central) and link each to its Operating Hours so time calculations respect local business times.

Step 4 — Create Service Resources

Create Service Resource records, link them to Users, set capacity, availability and skills.

Step 5 — Assign Resources to Territories

Use the Service Territory Member object to connect Service Resources to the matching Service Territory.

Step 6 — Define Work Types

Define Work Types (e.g., Screen Repair — 60 mins, Diagnostics — 30 mins) and required skills. Group them using Work Type Groups.

Step 7 — Create Location-to-Time Zone Mapping

Create a Custom Metadata Type called Location_Timezone_Mapping__mdt with fields such as State__c and Time_Zone__c (values like “America/New_York” that match Operating Hours). This allows dynamic timezone assignment in Flows or Apex.

Step 8 — Build the Guest Booking Flow

Using Flow Builder, create a Screen Flow for unauthenticated users. Key elements:

  • Collect customer details (name, phone, email, zip/state).
  • Lookup timezone via Location_Timezone_Mapping__mdt.
  • Use the Select Service Appointment Time Scheduler component and pass variables like Work Type, Service Territory, Service Resources, Selected Time Zone, and scheduling policy.
  • Connect a Flow Action to Save Appointment and pass the Service Appointment fields as JSON where needed.

Select Service Appointment Time Component — Important Inputs

  • Anonymous Booking Selected — True
  • Appointment Scheduling Policy — Name of your scheduling policy
  • Disable Multi-Resource Scheduling — True
  • Filter By Resource IDs — Pass Service Resource IDs for the territory
  • Selected Time Zone — From Location_Timezone_Mapping__mdt
  • Service Territory, Work Type, Work Type Group — as required

Step 9 — Add Guest Flow to an Experience Cloud Site

Create an Experience Cloud site and place the Flow component on a public page. Save and publish so guest users can access booking without logging in.

Step 10 — Embed on External Websites (Lightning Out)

To embed on non-Salesforce sites:

  • Whitelist your external site in CORS settings.
  • Create a Lightning Out dependency app that exposes the Flow or an Aura wrapper.
  • Ensure the Guest User profile has access to the Flow, objects, fields, and any Apex classes.

Example Lightning Out Script

<script>
	$Lightning.use("runtime_appointment booking: lightningOutGuest",
		function() { 	// Callback once framework and app load
			$Lightning.createComponent(
				"lightning:flow",	// top-level component of your app
				{ }, // attributes to set on the component when created
				"lexcontainer", // the DOM location to insert the component
				function (component) { 	// API name of the Flow
				component.startFlow("Salesforce_Scheduler_Unauthenticated");
				}
			);
		}, 'https://YourSiteDomain/SiteURL/' // Site endpoint
	);
</script>

Extensions & Enhancements

  • Integrated payments (Stripe/PayPal) for prepaid services.
  • Calendar sync with Outlook/Google for automatic invites.
  • SMS and email confirmations/reminders using Flow or external services.
  • Post-booking feedback collection for continuous improvement.

Best Practices & Tips

  • Keep the Location_Timezone_Mapping__mdt up to date to avoid timezone confusion.
  • Test guest flows in incognito to verify permission boundaries and component rendering.
  • Use Scheduling Policies to centralize booking rules (lead time, cancellation windows).
  • Log correlation IDs where possible to trace bookings across systems.

Conclusion

Anonymous scheduling with Salesforce Scheduler lets businesses deliver frictionless booking experiences without third-party tools. By leveraging the Scheduler object model, Location-to-Timezone metadata, Flow for UI and orchestration, and Experience Cloud (or Lightning Out) for public access, you can scale guest bookings across locations and time zones while automating resource assignment.

This matters for Salesforce admins, developers, and business users because it reduces manual routing, improves customer experience, and centralizes scheduling logic within the Salesforce platform — enabling better reporting, automation, and operational scale.