Book HVAC service appointments via WhatsApp with GoHighLevel and Gemini

Go to Workflow
0 views
Built by iamvaar iamvaar
Created on June 13, 2026

Description


Youtube Video For Workflow Explanation: https://youtu.be/3VTYQU7N6uU

This workflow operates as an automated WhatsApp customer service and booking chatbot for an HVAC company (Blankarray HVAC Solutions). It connects WhatsApp, GoHighLevel (for CRM and calendar), and a Gemini AI model to handle customer inquiries, capture contact details, and schedule service appointments.

1. Core Flow (The Main Logic)

WhatsApp Trigger**
Purpose:** This is the starting point of the workflow. It actively listens for incoming WhatsApp messages and triggers the sequence whenever a new message is received.


If Valid Sender Exists**
Purpose:** A conditional check to ensure the incoming message has a valid sender phone number (messages[0].from is not empty). This prevents the workflow from failing on empty or malformed requests.


Fetch GHL Contacts**
Purpose:** Connects to GoHighLevel to search for an existing contact record using the sender's WhatsApp phone number. It always outputs data, which tells the AI later if this is a known customer or a new lead.


Customer Service AI Agent1**
Purpose:** The central "brain" of the operation. This node orchestrates the conversational logic based on a detailed system prompt. It adopts the persona of "Alex," an HVAC service coordinator.
Functionality:** It decides whether to ask for missing user information (Name and Email), when to look up calendar slots, when to book the appointment, and how to format the responses (using WhatsApp-friendly styling).


Send WhatsApp Response**
Purpose:** The final step in the main execution path. It takes the text output generated by the AI Agent and sends it back to the customer's WhatsApp number.

2. AI Sub-Nodes (The Agent's Toolkit & Brain)

These nodes are connected directly to the Customer Service AI Agent1 to give it memory, intelligence, and the ability to take actions.

The Brain & Memory

Gemini Chat Model**
Purpose:** The Large Language Model (LLM) powering the AI Agent. It processes the user's text, understands the context based on your prompt, and generates the natural language response.


Redis Chat History Memory**
Purpose:** Maintains the context of the conversation. It uses the user's phone number as a unique session key, allowing the AI to remember what was said earlier in the chat rather than treating every message as a brand new interaction.

The Action Tools (GoHighLevel Integrations)

The AI Agent intelligently decides when to trigger these tools based on the conversation flow.

Save user issue in notes**
Purpose:** When a customer describes their HVAC problem, the AI uses this tool to immediately log a summary of the issue directly into the customer's GoHighLevel contact profile notes.


Create or update a contact in HighLevel**
Purpose:** If the "Fetch GHL Contacts" node found no existing record, the AI asks the user for their name and email. Once provided, the AI uses this tool to create a brand new contact profile in GoHighLevel before proceeding to book an appointment.


Fetch Available Calendar Slots**
Purpose:** When the user wants to book a service, the AI uses this tool to query the GoHighLevel calendar for available 30-minute time slots on the requested date.


Book Calendar Appointment**
Purpose:** Once the customer agrees to a specific time, the AI uses this tool to officially book the appointment in the GoHighLevel calendar using the Contact ID and the agreed-upon timestamp.

Nodes Used (5)

AI Agent
@n8n/n8n-nodes-langchain.agent
Google Gemini Chat Model
@n8n/n8n-nodes-langchain.lmChatGoogleGemini
HighLevel
n8n-nodes-base.highLevel
Redis Chat Memory
@n8n/n8n-nodes-langchain.memoryRedisChat
WhatsApp Business Cloud
n8n-nodes-base.whatsApp