intermediate45 minutes3 min read

How to alert Slack when a HubSpot deal is stuck in a stage for over 14 days

Flag stale HubSpot deals in Slack automatically. Compare 5 approaches — n8n, Zapier, Make, code, and Claude Code — with costs and trade-offs.

How to alert Slack when a HubSpot deal is stuck in a stage for over 14 days

This recipe includes a downloadable n8n template and Claude Code skill.

Workflow

Daily schedule
Search stale deals
Group by owner
Slack DM each rep

Why track stale deals?

Stale deals are the silent killer of forecast accuracy. A pipeline full of deals that haven't moved in 2-3 weeks looks healthy on paper, but in practice, many of those deals are dead — the prospect ghosted, the budget got cut, or the champion left the company. Forrester research found that 25-40% of pipeline deals at any given time are effectively dead but haven't been marked as lost.

The cost is real: inflated forecasts lead to bad hiring decisions, missed revenue targets, and false confidence in board meetings. Reps avoid disqualifying deals because it hurts their pipeline coverage numbers, and managers don't catch it because they're reviewing 50+ deals across the team.

Automated stale deal alerts solve this by surfacing deals that haven't been touched in 14+ days. When a rep sees their name on a stale deal alert in a shared Slack channel, they either advance the deal or disqualify it — both of which improve forecast accuracy.

What you'll get
#sales-alerts
Pipeline Botapp9:41 AM

⚠️ Stale Deal Alert

Deal: GlobalTech Platform Upgrade

Amount: $45,000

Stage: Qualification

Days inactive: 18 days

Owner: Marcus Rivera

Last activity: Feb 14, 2026

View in HubSpot →

How it works

Regardless of which tool you use, every approach follows the same pattern:

  1. Search for inactive deals — query HubSpot for deals where hs_lastmodifieddate is older than your threshold (e.g., 14 days ago), excluding closed-won and closed-lost stages.
  2. Resolve context — look up the human-readable stage name (HubSpot returns IDs like closedwon, not labels), calculate how many days each deal has been stale, and pull in the deal amount and owner.
  3. Alert the team — post a formatted message to Slack listing each stale deal with enough context for the rep or manager to take action.

All approaches run on a schedule (daily or weekly) rather than reacting to real-time events. Stale deal detection is inherently a batch operation — you're checking the current state of the pipeline, not responding to a specific trigger.

What you'll need

Prerequisites
  • HubSpot account with API access
  • Slack workspace with bot access
  • A defined threshold for "stale" (e.g., 14 days with no activity)

Which approach should I use?

  • n8n (Recommended) — visual workflow editor with a Code node for grouping deals by owner. Self-hostable for free. Best for teams who want a visual builder with flexibility to customize the output format.
  • Zapier — requires Professional plan for the Schedule + Webhooks + Code steps. Best for teams already on Zapier who want a quick setup, but the multi-step configuration is more complex than simpler recipes.
  • Make — visual builder with built-in search, aggregation, and scheduling. Best for teams already using Make or who want a no-code approach with lower pricing than Zapier.
  • Code + Cron — Python or Node.js script on a cron schedule. Best for engineering teams who want full control, pagination support for large pipelines, and zero ongoing cost.
  • Claude Code — a guided Claude Code skill with workflow guidelines and API references. Ask Claude to audit your pipeline for stale deals conversationally. Best for on-demand checks during pipeline reviews — "which deals in Negotiation haven't moved in 3 weeks?"

Choose your approach

Select an approach below to see the full step-by-step guide.

Compare approaches

n8n

medium
Cost: $0-24/mo
Latency: polling
Code: low
Reliability: 24/7 cloud

Zapier

medium
Cost: $20-50/mo
Latency: real-time
Code: none
Reliability: 24/7 cloud

Make

medium
Cost: $10-29/mo
Latency: polling
Code: none
Reliability: 24/7 cloud

Code + Cron

medium
Cost: $0
Latency: real-time
Code: high
Reliability: Self-hosted

Claude Code

low
Cost: Usage-based
Latency: on-demand
Code: none
Reliability: On demand

n8n

medium

Schedule → Search deals → Code node to find stale → Slack alert per deal

Downloadable templateView guide

Zapier

medium

Schedule → Webhooks to HubSpot search → Code to filter stale → Slack

Cost: $20-50/moView guide

Make

medium

Scheduler → Search Deals → Filter by date → Iterator → Slack DM per owner

Cost: $10-29/moView guide

Code + Cron

medium

Python script to find stale deals and batch notify via Slack

Cost: $0View guide

Claude Code

low

Guided Claude Code skill — ask Claude to find stale deals and post alerts conversationally, or run via Cowork in the background

Downloadable skillView guide

Related Recipes

Frequently Asked Questions

Looking to scale your AI operations?

We build and optimize automation systems for mid-market businesses. Let's discuss the right approach for your team.