Smart Scheduler Settings
Zones
Group FSAs (first 3 chars of postal codes) into named zones.
KeyLabelFSAs (comma)Books to (User ID)ModeColor
Books to: GHL userId on the shared team calendar this zone's leads are assigned to (free-slots filter + assignedUserId). Leave blank for the calendar's combined availability. Set one zone's Mode = virtual with a User ID (e.g. the _other catch-all, or a broad T* FSA zone listed after your specific zones) — it becomes the virtual target for unzoned leads, evening reroutes, and any lead the agent books as virtual. Virtual bookings default to a Google Meet link (override per-zone via meeting_location_type: gmeet/phone/custom).
On an in-person zone, tick allow virtual to let leads there choose a virtual appointment as an alternative (Edmonton); leave it off for in-person-only zones (Calgary). Tick eve→virtual to auto-route that zone's evening requests to the virtual target.
Saved
Scoring weights
Additive 0–100. Positive values reward; negative values penalize.
Saved
Hard constraints
Slots that fail any constraint are filtered before scoring.
Scope a constraint with an applies_to key — by zones (specific zone keys), fsa_prefix, or mode ("virtual" / "in_person"). mode is best for "all virtual bookings get a 3-day minimum" — it doesn't break if you rename the virtual zone. Examples:
{ "key": "jason_3wk_lead", "type": "min_lead_time", "hours": 504,
  "applies_to": { "zones": ["zone_8","zone_9","zone_10"] } }

{ "key": "virtual_3day", "type": "min_lead_time", "hours": 72,
  "applies_to": { "mode": "virtual" } }
A long min_lead_time auto-extends the search window so those slots aren't filtered to empty. Omit applies_to for an org-wide rule. (Friday-only / business-hours are handled by the rep's GHL working hours — no constraint needed.)
Saved
Defaults
Appended to the LLM's system prompt. Use it to scope the model to a region, define local abbreviations, or flag tricky boundaries.
Saved
Test the engine
Recommend slots without picking a real lead — useful for tuning weights.
Call a lead
Loading…
or dial: