Landscaping website with AI-powered geo availability, postcode scheduling, and GHL voice/chat booking.
Updated 2026-04-12Rob's Gardens is a landscaping business website for greater Sydney. The core feature is a geo availability system that maps 2000+ Australian postcodes to a rotating 2-week service schedule. Customers can check if their area is serviced and when, either through the GHL AI chatbot (Tom) or the public schedule page. Admins manage service zones through an interactive map interface.
The geo system is the backbone of the site. It connects customer postcodes to service zones, calculates which week of the rotating schedule we're in, and returns human-friendly messages that the GHL AI bot can relay directly to customers.
2000+ Australian postcodes mapped to suburb names. Supports both postcode-to-suburb and suburb-to-postcode lookups with fuzzy matching.
2000+ Entries5 geographic zones, one per weekday (Mon–Fri). Each zone covers a cluster of suburbs/postcodes in greater Sydney.
5 Zones2-week rotation anchored to a start date. Week 1 and Week 2 can have different zone assignments, enabling fortnightly service patterns.
2-Week CycleAutomatically calculates the next service date for a given postcode based on today's date and the rotating schedule. Accounts for week parity.
Auto-CalculatedEvery API response includes a message field written for the AI bot to relay directly. No parsing needed — just forward to the customer.
If Vercel Blob Storage is unavailable, the API falls back to the static data/zones.json file. Service never goes down.
The postcode lookup is the most-used feature. A customer provides their postcode (e.g. 2101), and the system tells them whether that area is serviced, which day, and the next available date.
?postcode=2101) and POST (JSON body {"postcode":"2101"}). CORS is enabled so the GHL AI can call it from anywhere.
matches array returns all matching zone/week combinations, and the top-level fields use the soonest next date.
The second endpoint answers day-based queries. When a customer asks "What areas do you service on Tuesday?", the API returns every suburb and postcode for that day's zone.
monday, Monday, and MONDAY all work. The current week number is auto-detected from today's date.
The schedule operates on a 2-week rotation anchored to a fixed start date. The system calculates whether today is in Week 1 or Week 2, and returns results accordingly. This allows different suburbs to be serviced on alternate weeks.
| Day | Zone Label | Postcodes | Suburbs |
|---|---|---|---|
| Monday | Northern Beaches Central | 2101, 2102 | Elanora Heights, Narrabeen, North Narrabeen |
| Tuesday | Upper North Shore | 2070, 2071, 2073 | Lindfield, Killara, Pymble |
| Wednesday | Northern Beaches North | 2103, 2104, 2105 | Mona Vale, Bayview, Newport |
| Thursday | Lower North Shore | 2067, 2068, 2069 | Chatswood, Castlecrag, Roseville |
| Friday | Palm Beach / Peninsula | 2106, 2107, 2108 | Bilgola, Avalon, Palm Beach |
The /manage-schedule page is where admins add, remove, and reorganise service zones. Changes save to Vercel Blob Storage and take effect immediately for all API lookups.
/api/check-availability?postcode=XXXX in your browser or asking Tom in the chat widget.
Service zones group suburbs and postcodes into daily routes. Each weekday covers a different geographic cluster to minimise travel time between jobs.
Elanora Heights, Narrabeen, North Narrabeen
Postcodes: 2101, 2102
Lindfield, Killara, Pymble
Postcodes: 2070, 2071, 2073
Mona Vale, Bayview, Newport
Postcodes: 2103, 2104, 2105
Chatswood, Castlecrag, Roseville
Postcodes: 2067, 2068, 2069
Bilgola, Avalon, Palm Beach
Postcodes: 2106, 2107, 2108
/manage-schedule for fortnightly rotation. The extended coverage area includes Eastern Suburbs, Greater Western Sydney, and Central Coast.
The site embeds GHL's Conversation AI widget as a floating chat orb. The AI assistant ("Tom") handles voice calls, text chat, postcode lookups, and booking. Tom calls the geo API endpoints behind the scenes to answer availability questions.
/api/check-availability/api/areas-by-day| Service | Description |
|---|---|
| Lawn Care & Mowing | Professional mowing, edging, and lawn maintenance |
| Hedge Trimming | Precise hedge shaping and boundary maintenance |
| Pruning & Weeding | Expert plant care and year-round garden health |
| Seasonal Garden Care | Mulching, spring prep, and seasonal maintenance |
| Green Waste & Clearing | Garden cleanup and eco-friendly waste disposal |
| Hard Surface Cleaning | Waterblasting patios, paths, and driveways |
| Garden Makeovers | Complete transformations, planting, and repairs |
| Tier | Rate | Details |
|---|---|---|
| Regular Maintenance | $150/hour | 2-person team, all standard services |
| Pre-Sale Makeover | $2K – $4K | Typical 3–4 day property transformation |
| Ride-On Mower Service | $175 | Per service with operator |
| Ride-On Mower Dry Hire | $200/day | Mon–Thu, self-operated |
| Ride-On Mower Weekend | $300 – $400 | Fri–Sun hire |
All bookings are handled through GHL's system. The website provides multiple entry points.
Click the floating orb or "Chat with Tom" button. Voice and text supported 24/7. Tom checks availability and connects to the booking calendar.
24/7Call +61 468 170 318. Tom answers via GHL voice AI. Can check postcodes, discuss services, and schedule appointments.
Voice AIFill in name, email, phone, and message at the bottom of the page. Submits to GHL CRM as a lead. Team follows up within 24 hours.
Lead Gen| Page | URL | Access | Purpose |
|---|---|---|---|
| Landing Page | / | Public | Hero, services, pricing, testimonials, contact, chat widget |
| Public Schedule | /schedule | Public | View the current 2-week service schedule in table format |
| Manage Schedule | /manage-schedule | Admin | Edit zones, postcodes, and areas with interactive map |
| Endpoint | Method | Parameters | Purpose |
|---|---|---|---|
| /api/check-availability | GET / POST | postcode (string) | Check if a postcode is in a service zone and get next date |
| /api/areas-by-day | GET / POST | day (string, e.g. "Monday") | List all suburbs and postcodes for a given day |
| /api/save-schedule | POST | schedule (JSON object) | Save updated schedule to Vercel Blob Storage (admin) |
robs-garden-schedule.json. Updated by /api/save-schedule. Read by both lookup endpoints.| Channel | Details |
|---|---|
| Phone | +61 468 170 318 (AI answers 24/7, team Mon–Sat 7am–5pm) |
| info@robgardens.com.au | |
| SMS | +61 468 170 318 |
| AI Chat | Floating orb on the website (voice & text) |
| Web Form | Contact section at bottom of landing page |
| Service Area | Greater Sydney: Northern Beaches, North Shore, Eastern Suburbs, Western Sydney, Central Coast |