Weekly stalled deals email for every HubSpot owner

Every Monday at 9am ET, each deal owner gets one focused email listing their stuck HubSpot deals, ranked by amount, with a suggested next step.

Agentic Task
HubSpotSend EmailSalesOperationsNotifications & AlertsEmail AutomationDaily Digests

Build me a weekly stalled deals nudge that emails each HubSpot deal owner the specific deals they need to revive.

Trigger: cron, every Monday at 9:00 AM America/New_York.

Workflow type: agent. The agent should follow these steps in order.

Step 1. Call HubSpot Search Deals to find all open deals where the deal stage has not changed in 14 or more days. Filter conditions: dealstage is not closedwon and is not closedlost, and hs_lastmodifieddate or the stage-change timestamp is older than 14 days. Request the properties dealname, amount, dealstage, pipeline, hubspot_owner_id, hs_lastmodifieddate, notes_last_updated, and the date the current stage was entered. Page through results until all matching deals are collected.

Step 2. Group the deals in memory by hubspot_owner_id. Drop any group that ends up with zero deals. Within each owner's group, sort deals by amount descending.

Step 3. For each remaining owner, call HubSpot Get Owner using the hubspot_owner_id to look up the owner's email and full name. Cache the result so you do not re-fetch the same owner.

Step 4. For each owner, draft a focused HTML email. Subject line: 'Your stalled deals for the week of <Monday date>'. Greeting uses the owner's first name. Body lists each stalled deal as a row with: deal name (linked back to the HubSpot deal page using the deal id), amount formatted as currency, number of days in current stage, last activity date, and one concrete suggested next action tailored to the stage they are stuck in (for example, qualification stage gets 'book a 15 minute discovery call'; proposal stage gets 'send a pricing follow up with a clear deadline'; negotiation gets 'escalate to a working session or get the contract red lined'). Order rows by amount descending. Close the email with a single sentence reminder that no reply is needed and the report runs again next Monday.

Step 5. Use Send Email (the General Input built in sender) to deliver the HTML email to each owner's email address. One email per owner, not one per deal. Skip owners with zero stalled deals.

Other requirements: handle HubSpot rate limits gracefully (the Search endpoint allows roughly 4 requests per second). Use the deal id from the search response when constructing the HubSpot deal link. If a deal has no amount set, show 'Amount not set' instead of $0 and sort it to the bottom. If HubSpot Get Owner does not return an email, skip that owner and log the owner id so the operator can fix it.

Additional information

What does this prompt do?
  • Finds open HubSpot deals where the stage has not moved in 14 or more days, every Monday morning.
  • Groups stuck deals by their owner and skips anyone with a clean pipeline that week.
  • Sends each owner a single ranked email listing deal name, amount, days in stage, last activity, and a suggested next step.
  • Runs from one HubSpot login. No Gmail or Outlook setup needed because the email goes through the built in sender.
What do I need to use this?
  • A HubSpot account with deals and owners set up (any paid tier with the deals object works).
  • Permission to read deals and owners in HubSpot (granted in the connection step).
  • Verified email addresses on each HubSpot owner record so the message lands in the right inbox.
How can I customize it?
  • Change the cadence or send time. Daily, every Tuesday, or end of week all work.
  • Adjust the stuck threshold. 7, 21, or 30 days are common alternatives to 14.
  • Filter the pipeline. Limit to a specific pipeline, deal stage, or minimum amount before a deal counts as stalled.
  • Tweak the suggested next steps so the language matches how your team actually moves deals forward.

Frequently asked questions

Does this work on HubSpot Free?
Yes. As long as you have the deals object and at least one owner assigned to deals, the workflow can read them. Most teams using a pipeline already have this.
What counts as a stalled deal?
Any open deal (not closed won and not closed lost) where the current stage has not changed in 14 or more days. You can change the threshold when you set the workflow up.
What if an owner has no stuck deals that week?
They get nothing. The workflow only emails owners with at least one stalled deal, so no one gets a useless empty digest.
Can I change which email address sends the message?
The message is sent through General Input's built in sender so you do not have to connect Gmail or Outlook. You can adjust the subject line and add a reply to address when you customize the prompt.
What does the suggested next step look like?
It is a one line nudge tailored to the stage the deal is stuck in, like 'send a pricing follow up' for a deal sitting in proposal or 'book a discovery call' for a deal stuck in qualification.

Stop letting deals quietly go cold.

Connect HubSpot once and every Monday morning, each rep wakes up to their own short list of deals to revive.