Skip to main content

Trigger HVAC upsell campaigns from weather data and handle bookings with GoHighLevel, WhatsApp, WeatherAPI and Gemini

Workflow preview

Workflow preview
100%
Trigger HVAC upsell campaigns from weather data and handle bookings with GoHighLevel, WhatsApp, WeatherAPI and Gemini preview
Open on n8n.io

1. Workflow Overview

Project Overview: Automated Climate Driven HVAC Upsell & AI Concierge This project is specifically built for an HVAC business to automatically upsell to old customers when their locality has a heat...

Best for

  • Lead Nurturing automation workflows
  • AI Chatbot automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.stickynote, n8n-nodes-base.highlevel, n8n-nodes-base.splitinbatches, n8n-nodes-base.if, n8n-nodes-base.code, n8n-nodes-base.httprequest, n8n-nodes-base.wait, n8n-nodes-base.whatsapp

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by iamvaar.

Original n8n.io source

1.1 Workflow description

Title
Trigger HVAC upsell campaigns from weather data and handle bookings with GoHighLevel, WhatsApp, WeatherAPI and Gemini
Workflow name
Trigger HVAC upsell campaigns from weather data and handle bookings with GoHighLevel, WhatsApp, WeatherAPI and Gemini

Project Overview: Automated Climate-Driven HVAC Upsell & AI Concierge

This project is specifically built for an HVAC business to automatically upsell to old customers when their locality has a heatwave or snow wave forecast in the upcoming five days.

Prerequisites & Setup

1. GoHighLevel (GHL)

  • Create Custom Fields:

  • stop_whatsapp: Used when a user replies "STOP" to remove them from the marketing list.

  • opp_type: To track the campaign type (e.g., heatwave or snowwave).

  • Create Two Pipelines:

  • Pipeline A: HEATWAVE

  • Pipeline B: SNOWWAVE

  • Note: Both pipelines require 4 stages: New Lead, Contacted, Scheduled, and Closed.

  • Grab the Calendar ID: Keep your GHL Calendar ID handy, as the workflow will need it to search for free slots and book appointments.

2. WhatsApp (Meta Business Suite)

Create and approve two marketing templates for proactive outreach:

A. Heatwave Template

> Hello {{1}}, > With temperatures expected to rise soon, we wanted to share a few tips to keep your home comfortable and your AC running efficiently. > Maintenance Tips: > • Keep blinds closed during peak sun hours. > • Check your air filters; a clean filter prevents overworking. > • If you leave the house, raise the thermostat a few degrees rather than turning it off. > Need help? > If your system is struggling to keep up, we are here to assist. > Stay cool and safe!

B. Snow Wave Template

> Hello {{1}}, > With a cold front and freezing temperatures expected soon, we wanted to share a few tips to keep your home warm and your heating system running efficiently. > Winter Comfort Tips: > • Keep curtains and blinds open during the day to let sunlight naturally warm your home, then close them at night to trap the heat. > • Check your air filters; a clogged filter makes your heater work much harder in freezing weather. > • Ensure your outdoor vents and heat pump units are clear of snow or debris to maintain proper airflow. > Need help? > If your heating system is struggling to stay warm or making unusual noises, we are here to assist. > Stay warm and safe!

3. API Integrations

  • Nominatim OpenStreetMap API: Review the documentation. This open-source tool will be used to extract exact cities from customer street addresses.
  • WeatherAPI: Obtain a free API key. Add this to your workflow's generic credentials (Type: Query Auth > Name: key > Value: your-api-key).
  • Gemini API: Obtain your API key to power the AI Service Concierge.

Part 1: The Climate-Driven Lead Generation Engine (Proactive Outreach)

This sub-workflow acts as a proactive scraper. It monitors your CRM contacts, cross-references their locations with live weather data, and triggers targeted upsell campaigns.

1. Schedule Trigger & Fetch Contacts

  • Schedule Trigger: Kicks off the workflow every morning at 7:00 AM.
  • Fetch Contacts (HighLevel): Pulls your entire list of previous customers and leads from GoHighLevel.

2. Geocoding & Data Cleaning

  • If Node (City Set): Checks if the CRM contact already has a city populated.
  • Nominatim API (Loop & Fetch): If a city is missing, the workflow runs the address through the Nominatim OpenStreetMap API to extract the exact city.
  • Update Contact (HighLevel): Saves the extracted city back to the GHL contact profile to prevent redundant geocoding in the future.

3. Weather Data Aggregation

  • Code Node (Group by City): A vital step to optimize API usage. Instead of making 1,000 separate calls for 1,000 contacts, custom JavaScript groups all contacts by their respective cities.
  • HTTP Request (Fetch Forecast): Pings WeatherAPI.com to grab the 5-day forecast for each unique city.

4. Hazard Detection & Routing

  • Code Node (Detect Weather Hazards): A script evaluates the 5-day forecast against dynamic, seasonal temperature thresholds (e.g., a "heatwave" threshold in May might be >85°F, but >95°F in August). It tags the grouped contacts with a campaign type (HEATWAVE or SNOWWAVE).
  • If Node (Check Campaign Type): Routes the qualified leads into the appropriate pipeline logic.

5. CRM Execution & WhatsApp Outreach

  • Create Opportunity (HighLevel): Drops the qualified lead into the "New Lead" stage of the respective GHL pipeline.
  • Send Template (WhatsApp): Dispatches the pre-approved Meta marketing template to the customer.
  • Update & Upsert (HighLevel): Moves the Opportunity to the "Contacted" stage and updates the opp_type custom field so the system tracks the reason for outreach.

Part 2: The AI-Powered Service Concierge (Inbound Handling)

When a customer replies to the proactive blast (e.g., "My AC is making a weird noise, can someone come out?"), this sub-workflow seamlessly takes over to assist the customer and autonomously book an appointment.

1. Trigger & Validation

  • Trigger (WhatsApp Message Received): Listens for inbound replies from customers.
  • Fetch & Validate (HighLevel): Looks up the sender's phone number in GHL. If the number does not exist in the CRM, the workflow ignores the message to prevent spam handling.

2. The Opt-Out Filter

  • If Node (Stop Command): Scans the inbound message for the keyword "STOP".
  • Upsert Contact (HighLevel): If "STOP" is detected, the workflow immediately updates the user's stop_whatsapp custom field to TRUE, excluding them from all future blasts, and terminates the flow.

3. The Agentic Core

  • Customer Service AI Agent (LangChain + Gemini): If the user is requesting assistance, the message is routed to an AI Agent powered by the Gemini Chat Model.
  • Redis Chat History Memory: Connects to a Redis instance so the AI retains conversation context, which is crucial for natural, back-and-forth scheduling.
  • Agent Tools (HighLevel Integration): The Gemini agent is equipped with specific tools it can trigger autonomously:
  • Fetch Available Calendar Slots: The AI is strictly instructed to check live GHL availability before suggesting times to the user.
  • Book Calendar Appointment: Automatically secures the timeslot in GHL if the user agrees.
  • Close Deal: If the user declines service ("I'm good, no thanks"), the AI triggers this tool to mark the GHL opportunity as "Closed/Lost".
  • Update Pipeline Stage: If an appointment is successfully booked, the AI moves the pipeline stage to "Scheduled" without any manual human intervention.

4. Final Response

  • Send Response (WhatsApp): The AI formulates a conversational, friendly reply—utilizing WhatsApp's native formatting like bolding and bullet points—and sends it back to the customer to confirm the action taken.

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Sticky Note

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 2 - Sticky Note1

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 3 - Sticky Note2

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 4 - Sticky Note3

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 5 - Sticky Note4

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 6 - Sticky Note5

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 7 - Sticky Note6

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 8 - Sticky Note7

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 9 - Fetch Contacts

Type / Role
n8n-nodes-base.highLevel - highLevel
Config choices
Version 2

Block 10 - Loop Over Contacts

Type / Role
n8n-nodes-base.splitInBatches - splitInBatches
Config choices
Version 3

Block 11 - Update Contact City

Type / Role
n8n-nodes-base.highLevel - highLevel
Config choices
Version 2

Block 12 - If City Set

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.3

Block 13 - Group Contacts by City

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 14 - Fetch Weather Forecast

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.4

Block 15 - Fetch City from Address

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.4

Block 16 - Detect Weather Hazards

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 17 - Wait 1 Second

Type / Role
n8n-nodes-base.wait - wait
Config choices
Version 1.1

Block 18 - Check Campaign Type

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.3

Block 19 - Create Template Opportunity

Type / Role
n8n-nodes-base.highLevel - highLevel
Config choices
Version 2

Block 20 - Create Message Opportunity

Type / Role
n8n-nodes-base.highLevel - highLevel
Config choices
Version 2

Block 21 - Update Template Opportunity

Type / Role
n8n-nodes-base.highLevel - highLevel
Config choices
Version 2

Block 22 - Update Message Opportunity

Type / Role
n8n-nodes-base.highLevel - highLevel
Config choices
Version 2

Block 23 - Send WhatsApp Template

Type / Role
n8n-nodes-base.whatsApp - whatsApp
Config choices
Version 1.1

Block 24 - Upsert Template Contact

Type / Role
n8n-nodes-base.highLevel - highLevel
Config choices
Version 2

Showing the first 24 of 48 workflow blocks. Download the JSON for the full node graph.

3. Summary Table

Workflow Trigger HVAC upsell campaigns from weather data and handle bookings with GoHighLevel, WhatsApp, WeatherAPI and Gemini
Complexity advanced
Nodes 48
Categories Lead Nurturing, AI Chatbot
Author iamvaar
Published 10 May 2026

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/15598/15598.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Trigger HVAC upsell campaigns from weather data and handle bookings with GoHighLevel, WhatsApp, WeatherAPI and Gemini do?

Project Overview: Automated Climate Driven HVAC Upsell & AI Concierge This project is specifically built for an HVAC business to automatically upsell to old customers when their locality has a heat...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Lead Nurturing, AI Chatbot use case.