Alert Slack when a HubSpot deal is stuck in a stage for over 14 days using Make
medium complexityCost: $10-29/mo
Prerequisites
Prerequisites
- Make account (Free plan works for low volume)
- HubSpot connection in Make via OAuth
- Slack connection in Make
Step 1: Schedule daily execution
Create a new scenario. Set the schedule:
- Schedule type: Every day
- Time: 08:00
Step 2: Search for stale deals
Add a HubSpot CRM → Search CRM Objects module:
- Object type: Deals
- Filter:
hs_lastmodifieddateless than{{addDays(now; -14)}}ANDdealstagenot inclosedwon, closedlost - Properties: dealname, amount, dealstage, hs_lastmodifieddate, hubspot_owner_id
Make handles pagination automatically — it returns all matching deals as individual bundles.
Step 3: Aggregate into a single message
Add a Text Aggregator module:
- Source module: Search CRM Objects
- Text:
• *{{dealname}}* — {{dealstage}} — ${{formatNumber(amount; 0)}} — {{round(dateDifference(now; hs_lastmodifieddate; "d"))}}d stale - Row separator: newline
This compiles all stale deals into one formatted string.
Step 4: Send to Slack
Add a Slack → Create a Message module:
- Channel:
#sales-pipeline - Text:
⚠️ *Stale Deals Alert*
{{Text Aggregator output}}Step 5: Handle empty results
Click the connection between the Search and Aggregator modules and enable Stop Processing After Empty Aggregation on the Text Aggregator. This prevents an empty Slack message when no stale deals are found.
Alternatively, add a Filter after the Aggregator that checks length(output) > 0.
Step 6: Activate
- Click Run once to test
- Verify the Slack message
- Toggle to Active
Cost
- Free plan: ~2-3 credits per run (search + aggregator + Slack). 30 runs/month = ~90 credits. Well within the 1,000 free credits.
Need help implementing this?
We build and optimize automation systems for mid-market businesses. Let's discuss the right approach for your team.