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.
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.
These nodes are connected directly to the Customer Service AI Agent1 to give it memory, intelligence, and the ability to take actions.
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 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.