Turn stalled HubSpot deals into Microsoft Planner tasks

Every Monday at 8am, sweep HubSpot for deals stuck more than seven days, file each one as a Planner task for the owner, and recap the misses in Teams.

Agentic Task
HubSpotMicrosoft PlannerMicrosoft TeamsSalesOperationsNotifications & AlertsDaily Digests
PromptCreate

Every Monday at 8am, sweep our HubSpot pipeline for stalled deals and turn each one into a follow-up task in Microsoft Planner for the deal owner, then post a manager-facing recap to a Microsoft Teams sales channel. Run this on a weekly cron trigger.

Step 1. Find stalled deals in HubSpot. Use HubSpot Search Deals to pull all open deals (not in a closed-won or closed-lost stage) whose current pipeline stage has not changed in more than seven days. Ask me at setup which pipeline to watch and which stages count as closed. For each deal, read the deal amount, the current stage, the last activity date, and the most recent note or engagement so you have enough context to reason about it.

Step 2. Resolve each deal owner. Use HubSpot Get Owner on the deal's ownerId to get the owner's name and email. Keep a running map of ownerId to name, email, and how many stalled deals they own so we can build the recap later.

Step 3. Draft a concrete next step per deal. Based on the deal amount, stage, last activity, and recent notes, write one specific next action the owner should take. This should not be a generic "follow up" line. It should be a real recommendation: a specific outreach angle, a question the rep still needs to answer, a stakeholder to loop in, or a blocker to unblock. Keep it to two or three sentences.

Step 4. Skip deals that already have an open task. Before creating a Planner task, call Microsoft Planner List Tasks in Bucket on our designated Stalled Deals bucket and check whether any open (incomplete) task already references this HubSpot deal ID in its title or description. If one exists, skip this deal so we do not double-file.

Step 5. Create the Planner task. For each remaining stalled deal, call Microsoft Planner Create Task in the Stalled Deals bucket. Title it something like "Follow up: {deal name} ({stage}, ${amount})". Assign it to the deal owner (map the HubSpot owner's email to their Microsoft user). Set the due date to two business days from now. In the task description, include the drafted next step, the deal amount, the current stage, the days since last activity, and a direct link back to the HubSpot deal record.

Step 6. Post the manager recap. After all tasks are filed, call Microsoft Teams Create Channel Message to post a short summary in our sales channel (ask me at setup which team and channel). The recap should include: how many deals slipped this week, the three highest-value stalled deals with their owner and stage, and the three reps carrying the most stalled pipeline by count and by total amount. Keep the message scannable, not a wall of text.

Ask me at setup for: the HubSpot pipeline to watch, the list of closed stages to exclude, the Microsoft Planner plan ID and Stalled Deals bucket name, and the Microsoft Teams team and channel for the recap. Default the stall threshold to seven days but let me override it. If a HubSpot owner has no matching Microsoft user, still create the Planner task unassigned and flag those in the Teams recap.

Additional information

What does this prompt do?
  • Finds open HubSpot deals whose stage has not changed in over a week and are still active in your pipeline.
  • Reads the deal amount, current stage, last activity, and recent notes, then drafts a concrete next step for the owner (a specific outreach angle, a question to answer, or a blocker to unblock).
  • Creates a Microsoft Planner task in your Stalled Deals bucket for each one, assigned to the deal owner with a two-day due date and a link back to HubSpot.
  • Skips deals that already have an open Planner task so nothing gets double-filed.
  • Posts a Monday morning recap to a Microsoft Teams sales channel with the total number of slipped deals, the highest-value ones, and the reps carrying the most stalled pipeline.
What do I need to use this?
  • A HubSpot account with access to your deals pipeline and owner list.
  • A Microsoft 365 account connected to Planner, with a plan and a Stalled Deals bucket set up in advance.
  • A Microsoft Teams channel where the weekly recap should be posted.
  • Agreement on your team's definition of stalled (default is seven days without a stage change).
How can I customize it?
  • Change the stall threshold. Seven days is the default, but many teams prefer ten or fourteen depending on cycle length.
  • Adjust the due date on each Planner task or pick a different bucket if you already track pipeline work somewhere else.
  • Swap the recap destination. Post to a different Teams channel, or add a leadership-only version with just the top three deals by amount.

Frequently asked questions

How does the agent decide a deal is stalled?
It looks at deals that are still open (not in a closed stage) and whose pipeline stage has not changed in more than seven days. You can raise or lower the threshold when you set the workflow up.
Will it create duplicate tasks if the same deal is stalled two weeks in a row?
No. Before creating a task, the agent checks the Stalled Deals bucket for an open task tied to the same deal and skips it if one already exists.
Do I need a Planner plan and bucket already set up?
Yes. Create a plan in Microsoft Planner and add a bucket called Stalled Deals (or whatever name you prefer) before running this. The agent files tasks into that bucket.
Who gets assigned each Planner task?
The HubSpot deal owner. The agent looks up each deal's owner in HubSpot, then assigns the matching Microsoft user in Planner.
Can I use this if my sales team is on Slack instead of Teams?
This version posts the weekly recap to Microsoft Teams. Ask Geni to swap the recap step for Slack when you set it up and it will wire that in instead.

Stop letting deals rot in the pipeline.

Connect HubSpot, Microsoft Planner, and Teams once, and Geni runs this sweep every Monday morning.