Google Review Request Automation

Intelligent Location-Based Review System for Multi-State Operations

Phase 1: n8n Orchestration & Intelligence

Webhook Trigger

Endpoint: POST /review-request-system

Listens for Jobber events and captures business activity in real-time

Invoice Created - New customer invoice generated
Visit Completed - Service appointment finished
Job Closed - Work order completed
Payment Created - Customer payment received
Event Classification

Switch node inspects body.event_type and routes data accordingly

Each event type is logged to its dedicated Google Sheet tab:

Event data appended/updated using unique ID as key
Single row per Jobber object ensures latest values
Contact Alignment

Synchronizes data between Google Sheets and GoHighLevel CRM

Search Clients sheet by client_email
GET contact via LeadConnector API to retrieve contact.id
Ensures downstream updates target correct unique GHL contact
AI-Powered Location Matching

GPT-5-NANO Intelligence

Customer postal code is analyzed against a curated, state-scoped reference list of all business locations

AI receives: Customer ZIP + List of (Location, Zip Code, BusinessID) pairs

AI returns: Structured data identifying the nearest Google Business Profile

Location: Human-readable label (e.g., "AZ Phoenix")
ZIP: Representative ZIP code for that location
BusinessID: Internal key (e.g., "az_phoenix_gbp")
Reason: Justification for the match

Critical Rules

  • AI must ALWAYS return a result (never empty)
  • Chooses closest location even without exact ZIP match
  • Code node parses AI text into structured fields
BusinessID Routing

Switch node routes contact based on BusinessID determined by AI

Examples: whittier_gbp, az_phoenix_gbp, nv_henderson_gbp, etc.

GHL Contact Update (Handoff to CRM)

API Call: PUT to LeadConnector /contacts/{contact.id}

Three critical custom fields updated:

Invoice Number - Unique invoice identifier
Last Invoice Date - Set to today (yyyy-MM-dd)
Closest GBP Name - Human-readable location label

Critical Trigger Field

  • Closest GBP Name is the trigger that launches GHL workflows
  • All location filtering happens in n8n (AI-powered)
  • GHL receives the final decision and executes accordingly

Phase 2: GoHighLevel Orchestration

Primary GHL Workflow (State Router)

Trigger: Custom field Closest GBP Name changed/populated

Purpose: Evaluates which state the assigned GBP belongs to and routes accordingly

State-Level IF Filter

Checks if Closest GBP Name corresponds to supported regions

California
Texas
Florida
Nevada
Arizona
Utah
New Mexico
Atlanta (GA)

Action: Contact is enrolled into dedicated state-specific workflow

State Workflows (City-Level Personalization)

No Triggers - Enrollment Only

These workflows have no triggers and only accept programmatic enrollments from the primary workflow

Immediate Action: City-level IF filter on Closest GBP Name

California Example: 11 city branches (Whittier, Thousand Oaks, Santa Clarita, San Jose, San Diego/Poway, Sacramento, Riverside, OC South, OC North, LA Coastal, Fresno)
Matched City Action: Send unique Google Review Request with city-specific GBP review link
Flag Contact: Mark "Review request sent"
1-Hour Follow-up Timer Set
Engagement Tracking

After 1 hour, system checks for customer engagement:

Success Path: Reply received OR review link clicked → Success handling (optional stop reminders)
No Engagement: Mark "No review left" and "No review sent" for reporting/retargeting

Filtering Logic Summary

Filtering Goal Platform How It Works Result
Event Classification n8n Switch on body.event_type Correct Google Sheet tab
Nearest GBP Selection n8n AI maps postal code → BusinessID; Code node parses; Switch routes Closest GBP Name + BusinessID
State Selection GHL IF filter on Closest GBP Name (CA/TX/FL/NV/AZ/UT/NM/Atlanta) Enrollment into state workflow
City Selection GHL IF filter across state's cities (e.g., 11 for CA) City-specific review request with GBP link

Executive Summary

When Jobber activity occurs, n8n receives the event, logs details to Google Sheets, then looks up the matching GoHighLevel contact.

Using the contact's postal code, n8n's AI analyzes proximity and selects the nearest Google Business Profile (GBP). This result is written to the GHL contact's Closest GBP Name field along with invoice metadata.

In GoHighLevel, a primary workflow triggers on the Closest GBP Name field change and determines the state (CA/TX/FL/NV/AZ/UT/NM/Atlanta). The contact is then enrolled into that state's dedicated workflow.

The state workflow uses an IF filter to identify the exact city, then sends a city-specific review request message containing the unique GBP review link. The system marks "review request sent" and checks back after 1 hour for engagement.

If there's no reply or link click within the hour, the contact is marked "no review left / no review sent" for reporting and potential retargeting.

End Result: Every contact receives the correct review request for the nearest GBP location to their city, fully automated and intelligently routed.

Key Benefits & Intelligence

Proximity Intelligence

AI-powered ZIP matching ensures closest location

Personalized Links

City-specific GBP review URLs

Automated Timing

Perfect timing after service completion

Engagement Tracking

1-hour follow-up monitoring

Fallback Protection

Never returns empty results

Complete Logging

Full audit trail in Google Sheets