🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

HighLevel to Notion, sales dashboards that stay current

Lisa Granqvist Partner Workflow Automation Expert

Your sales numbers are probably “somewhere.” In HighLevel. In someone’s spreadsheet. In Slack screenshots. And when the team asks what’s real, you end up playing referee instead of leading.

This is the kind of mess that drains Sales Managers first, but RevOps and founders feel it too. With HighLevel Notion automation, you get a dashboard that updates on demand and Slack updates that keep reps aligned without constant check-ins.

Below, you’ll see exactly how the workflow pulls deals from HighLevel, builds rep dashboards in Notion, and posts AI-written motivation in Slack so your team stays focused on closing.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: HighLevel to Notion, sales dashboards that stay current

The Problem: Sales Dashboards Go Stale (Fast)

Sales dashboards break in boring ways. Someone forgets to refresh a report. A rep’s deals are tagged inconsistently. A manager pulls numbers from HighLevel, then “cleans them up” in a spreadsheet, then posts a summary in Slack that nobody trusts. The next day, the same thing happens again. It’s not just time lost. It’s the mental overhead of defending the data, coaching off outdated numbers, and dealing with quiet resentment when compensation or performance rankings feel fuzzy.

The friction compounds. Here’s where it usually breaks down in real teams.

  • Manual leaderboard updates steal about 1–2 hours a week from the person who can least afford it.
  • Numbers get disputed because nobody can trace “where the total came from” without digging through deals.
  • Reps stop checking dashboards when they’re wrong even once, so adoption quietly dies.
  • Coaching becomes reactive because you notice trends too late, after the week is already gone.

The Solution: HighLevel → Notion Dashboards + Slack Motivation

This workflow pulls every opportunity from HighLevel, normalizes the messy fields into a clean structure, and then summarizes performance per rep so you can trust the totals. Once the metrics are calculated (deals handled, total value, deals won, average deal size), it creates or updates a Notion performance page for each rep. After that, it turns those stats into AI-friendly context and asks GPT‑4o (via Azure OpenAI) to write a personalized motivational message. Finally, the workflow posts the update in Slack, which means the team sees the same story at the same time, with the same numbers.

The workflow starts with a manual refresh (useful for testing or a daily “run it now” habit). Then HighLevel data gets validated and cleaned. Notion becomes the living dashboard, while Slack becomes the daily pulse check.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you have 8 reps and you post a daily scoreboard. Manually, you might spend about 10 minutes per rep pulling HighLevel totals, cleaning them, and formatting a message for Slack, which is roughly 80 minutes a day (and that’s on a “good data” day). With this workflow, you click run once, wait a few minutes for HighLevel + Notion updates and the AI copy, and the Slack messages go out automatically. You get about an hour back each day, and the team stops arguing about whose spreadsheet is correct.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • HighLevel for pulling opportunities and rep ownership.
  • Notion to store dashboards your team actually checks.
  • Slack to post daily performance and motivation updates.
  • Google Sheets for an error log you can review.
  • Azure OpenAI API credentials (get them from the Azure OpenAI resource in your Azure portal).

Skill level: Intermediate. You’ll connect accounts, set credentials, and lightly adjust fields to match your HighLevel pipeline naming.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

Manual refresh from n8n. You run the workflow when you want fresh numbers (daily, before a standup, or right before coaching sessions). It’s also handy for testing changes safely.

Deal retrieval and validation. n8n pulls all opportunities from HighLevel and checks that the response contains valid deal IDs. If something is missing, it routes the failure details into a Google Sheets error log.

Cleaning and rep-level rollups. The workflow normalizes each deal into a consistent schema (rep, client, value, stage/status), then aggregates totals by rep, including wins and average deal size.

Notion dashboards plus Slack messages. It creates or updates a Notion performance page for each rep, then sends the summarized stats to GPT‑4o (Azure OpenAI) to generate a motivational message that gets posted in Slack.

You can easily modify the Notion page format to match your current sales dashboard template based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Manual Trigger

Start the workflow manually during setup to validate each downstream connection and transformation.

  1. Add the Manual Launch Trigger node as the entry point.
  2. Connect Manual Launch Trigger to Retrieve CRM Opportunities.

Step 2: Connect HighLevel and Validate Deal Retrieval

Pull all opportunities from HighLevel and route based on whether records are returned.

  1. Open Retrieve CRM Opportunities and set Resource to opportunity and Operation to getAll.
  2. Credential Required: Connect your highLevelOAuth2Api credentials in Retrieve CRM Opportunities.
  3. In Verify Deal Retrieval, set the condition Left Value to {{ $json.id }} with the operator notEmpty to detect valid deal records.
  4. Confirm the TRUE output from Verify Deal Retrieval goes to Normalize Deal Records, and the FALSE output goes to Record Fetch Issues.

⚠️ Common Pitfall: If Verify Deal Retrieval always fails, your HighLevel account may be returning an empty payload—check HighLevel permissions or filter settings in Retrieve CRM Opportunities.

Step 3: Log Fetch Issues to Google Sheets

When deal retrieval fails, log the issue to a Google Sheet for troubleshooting.

  1. Open Record Fetch Issues and keep Operation set to append.
  2. Set Document ID to the target spreadsheet (currently [YOUR_ID]).
  3. Set Sheet Name to the error log sheet (currently [YOUR_ID]).
  4. Credential Required: Connect your googleSheetsOAuth2Api credentials in Record Fetch Issues.

Replace the placeholder IDs in Record Fetch Issues before testing, or the node will fail due to missing spreadsheet references.

Step 4: Normalize and Aggregate Deal Metrics

Transform raw opportunities into a consistent schema, then summarize performance by rep.

  1. In Normalize Deal Records, keep the JavaScript transformation that maps deal fields to deal_id, rep_id, status, value, and related metadata.
  2. In Aggregate Rep Metrics, keep the JavaScript aggregation that calculates total_deals, total_value, won_deals, and avg_value per rep.
  3. Ensure Normalize Deal Records connects to Aggregate Rep Metrics as shown in the workflow.

Step 5: Split Output to Notion and AI Formatting (Parallel)

The workflow branches after aggregation to create Notion pages and prepare data for AI messaging.

  1. Aggregate Rep Metrics outputs to both Build Notion Performance Page and Format Stats for AI in parallel.
  2. In Build Notion Performance Page, set Title to {{ $json["rep_id"] }} - Sales Rep Performance Tracker.
  3. Confirm the Notion block content uses expressions such as {{$json["total_deals"]}} and {{$json["avg_value"]}} for dynamic stats.
  4. Credential Required: Connect your notionApi credentials in Build Notion Performance Page.
  5. In Format Stats for AI, keep the transformation that returns a flat structure per rep for AI consumption.

Parallel execution means Notion pages and AI prep run at the same time—ensure both branches are configured before testing.

Step 6: Set Up Azure GPT and Generate Slack Copy

Use the Azure GPT model to create motivational messages based on performance data.

  1. Open Azure GPT Model Setup and set Model to gpt-4o.
  2. Credential Required: Connect your azureOpenAiApi credentials in Azure GPT Model Setup.
  3. In Create Motivational Slack Copy, keep the Text prompt set to Generate a motivational Slack message for the following sales reps based on their performance data: {{JSON.stringify($json)}} ....
  4. Ensure Azure GPT Model Setup is connected as the language model for Create Motivational Slack Copy; add credentials to Azure GPT Model Setup, not the agent node.

⚠️ Common Pitfall: If the AI output is empty, verify that Format Stats for AI is sending items and that Create Motivational Slack Copy is receiving JSON inputs.

Step 7: Configure Slack Delivery

Send the generated motivational copy directly to a Slack user.

  1. In Send Slack Updates, set Text to {{ $json.output }}.
  2. Select a User recipient (currently [YOUR_ID]).
  3. Credential Required: Connect your slackApi credentials in Send Slack Updates.

Step 8: Test & Activate Your Workflow

Run a manual test to confirm data retrieval, Notion pages, and Slack messages all work end-to-end.

  1. Click Execute Workflow and trigger Manual Launch Trigger.
  2. Verify that Retrieve CRM Opportunities returns records and that Verify Deal Retrieval routes to Normalize Deal Records.
  3. Confirm Notion pages are created by Build Notion Performance Page and that Send Slack Updates posts the AI-generated message.
  4. When everything looks correct, switch the workflow Active to enable production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • HighLevel credentials can expire or lack the right scopes for opportunities. If things break, check your HighLevel API key and permissions in your HighLevel settings first.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Notion page creation can “work” but still feel wrong if your database properties don’t match the workflow fields. Confirm the Notion integration has access to the right workspace and that required properties (rep name, totals, win counts) exist.

Frequently Asked Questions

How long does it take to set up this HighLevel Notion automation automation?

About an hour if your credentials are ready and your Notion database is already created.

Do I need coding skills to automate HighLevel Notion automation?

No. You will mostly connect accounts and map a few fields. Light edits are optional if you want custom metrics or formatting.

Is n8n free to use for this HighLevel Notion automation workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Azure OpenAI usage costs, which depend on how long your Slack messages are and how many reps you message.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

Can I customize this HighLevel Notion automation workflow for weekly scorecards instead of daily updates?

Yes, but you’ll change the schedule and the grouping logic. Most teams swap the manual trigger for a scheduled trigger, then adjust the “Aggregate Rep Metrics” logic to filter deals by a weekly date window. You can also tweak “Build Notion Performance Page” to write into a weekly database entry instead of updating a single “current” page.

Why is my HighLevel connection failing in this workflow?

Usually it’s expired or incorrect HighLevel API credentials, so regenerate the key and update the connection in n8n. It can also happen when the account doesn’t have access to the pipeline you’re querying, which makes the response look “empty” and fails the validation. If you’re pulling a lot of opportunities at once, you might also be hitting rate limits, so rerun at a quieter time or add a small delay between pages.

How many deals can this HighLevel Notion automation automation handle?

Thousands, as long as your HighLevel API and Notion workspace can handle the volume and your n8n instance has enough memory.

Is this HighLevel Notion automation automation better than using Zapier or Make?

Often, yes, because this workflow isn’t just moving fields from A to B. You’re cleaning data, aggregating rep metrics, branching on validation, logging errors to Sheets, and generating AI messages from structured stats. That’s the kind of multi-step logic that can get expensive or awkward in simpler tools. Zapier or Make can still be fine for a quick “deal won → post to Slack” automation, honestly. If you want help choosing, Talk to an automation expert and you’ll get a clear recommendation.

Once this is running, your dashboards stop decaying in the background. You’ll have cleaner coaching conversations, fewer debates about totals, and a sales team that actually pays attention to the scoreboard.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal