Nudge Dynamics 365 deal owners about stale pipeline in Slack

Every weekday morning, an agent reviews your open Dynamics 365 pipeline and privately DMs each rep only the deals that need attention today.

Agentic Task
Microsoft Dynamics 365SlackSalesNotifications & AlertsDaily Digests
PromptCreate

Every weekday at 8am in my workspace timezone, audit my open sales pipeline in Microsoft Dynamics 365 and privately nudge each deal owner in Slack about the deals that are going stale. Use a cron trigger: Dynamics 365 does not offer a poll or webhook trigger on this platform, so the schedule fires the run and the workflow pulls the pipeline itself.

Start with Dynamics 365 Query Records against the opportunity table to pull every open opportunity. Filter to open deals with statecode eq 0, and select at least name, opportunityid, _ownerid_value, estimatedvalue, estimatedclosedate, salesstagecode, stepname and modifiedon. Order by estimatedvalue descending. Request formatted-value annotations so you get readable owner names and stage labels instead of raw option-set numbers, and page through @odata.nextLink until you have the full pipeline rather than only the first page.

Then exercise judgement over that list rather than applying one blunt rule. The signals that matter: a deal with no modification for 14 or more days has gone quiet; a deal whose estimated close date is already in the past, or falls within the next 7 days while the deal is still sitting in an early sales stage, is not going to land on time; and a high-value deal that has slipped backwards a stage is the most urgent of all. Weigh these together with deal value, so a large deal that is mildly stale can outrank a tiny deal that is badly stale. Do not flag a deal just because it is new, and do not flag a late-stage deal that is clearly still moving.

Use Retrieve Record to pull fuller detail on anything that looks risky before you write about it, so the reasons you give are grounded in the actual record rather than guessed from a list row. For the riskiest deals it is also worth querying related activity records for that opportunity to confirm whether the silence is real or whether someone has logged a call or email that did not touch the deal record itself. If auditing is enabled in the environment, the change history is the reliable way to confirm a backwards stage move or a close date that has been pushed repeatedly. Where you cannot establish history, say the deal looks stalled rather than asserting it regressed. Never invent a reason.

Group the flagged deals by owner. Resolve each owner from _ownerid_value with Retrieve Record against the systemuser table to get their full name and internalemailaddress. Then map each owner to a Slack account: use Slack List Users to find the workspace member whose profile email matches the owner's Dynamics email, use Open a Conversation to get that person's DM channel, and use Send a Message to deliver the nudge. If no Slack account matches an owner's email, skip the DM rather than messaging the wrong person, and note the unmatched owner in the leadership summary so it can be corrected.

Each DM should be short and immediately actionable: a one-line opener, then the owner's flagged deals ranked most urgent first, capped at the top five so it stays readable. Give each deal its name, its value, its close date, one plain sentence on why it was flagged, and one concrete suggested next step for that specific deal. Suggest something a rep can actually do today, like re-confirming the close date with the champion or booking a call, not generic advice to follow up. Write in Slack mrkdwn, which uses single asterisks for bold and angle-bracket links, not standard Markdown.

Finally, post one aggregate summary to the sales leadership channel: how many deals were flagged, the total value at risk, the breakdown by owner, and the handful of deals that most need a manager to step in. This is a roll-up for pattern spotting, not a repeat of every DM.

The workflow must stay quiet on good days. An owner with nothing flagged gets no DM at all, not an empty or all-clear message. If nothing is flagged anywhere in the pipeline, skip the leadership post too and end the run silently. Treat the deal data as read-only throughout: never edit deals, change stages, or update close dates in Dynamics 365. Pace the Slack messages so you stay within its roughly one message per second per channel limit, and if Dynamics 365 returns a rate-limit response, honor the Retry-After delay and resume rather than dropping owners from the run.

What does this prompt do?

  • Reviews every open deal in your Dynamics 365 pipeline at 8am each weekday, before the selling day starts
  • Applies judgement rather than one blunt rule: deals that have gone quiet, deals closing in the next few days that are still stuck in an early stage, deals whose close date has already passed, and big deals that have slipped backwards
  • Sends each owner a private Slack message with a short ranked list of only their at-risk deals, each with a one-line reason and a suggested next step
  • Posts one roll-up to your sales leadership channel so managers see the whole picture without opening the CRM
  • Stays completely silent for anyone whose deals all look healthy, so the nudge keeps its meaning

What do I need to use this?

  • A Microsoft Dynamics 365 account with permission to read your sales pipeline
  • A Slack workspace connected to the agent, with permission to send direct messages
  • Deal owners recorded in Dynamics 365 with the same email address they use in Slack, so the agent can match them up
  • A Slack channel for the leadership summary

How can I customize it?

  • Change the schedule: run it Monday only, shift it to 7am, or move it to a Friday afternoon wrap-up
  • Tune the thresholds: how many days of silence counts as stale, how wide the closing-soon window is, and the value at which a deal counts as high value
  • Adjust the tone and length of the DMs, or cap each one at the top three deals so nobody gets a wall of text
  • Change who receives the leadership roll-up, or have it post an all-clear on clean days instead of staying silent

FAQs

What makes a deal count as stale?
The agent looks at several signals rather than one rule. It flags deals that have had no updates for two weeks or more, deals whose expected close date has already passed or lands within the next seven days while the deal is still in an early stage, and valuable deals that have moved backwards instead of forwards. You can change any of these thresholds.
Will my reps get a message every single day?
No. Owners with nothing flagged get no message at all. That is the point of the design: a DM only arrives when there is something genuinely worth acting on, so people keep paying attention to it.
Does this change anything in Dynamics 365?
No. The agent only reads your pipeline. It never edits deals, moves stages, or updates close dates, so there is no risk of it disturbing your CRM data or triggering your own automations.
What if someone's Dynamics 365 email does not match their Slack email?
The agent matches deal owners to Slack accounts by email address. If it cannot find a match it skips the DM rather than messaging the wrong person, and notes the unmatched owner in the leadership summary so you can fix the record.
Can I get this in Microsoft Teams instead of Slack?
This version is built for Slack. The same workflow can be rebuilt against Microsoft Teams, so just ask for a Teams version when you set it up.
Do I need a specific Dynamics 365 plan?
Any Dynamics 365 plan that includes the sales pipeline will work. The agent reads standard opportunity information such as owner, value, expected close date and stage, which is available on the standard sales setup.

Related templates

Auto-fix your calendar when a flight slips, and flag what's at risk

When your flight moves, your calendar times get corrected automatically and you get a Slack note naming the meetings you're about to miss.

Google Calendar
AviationStack
Slack
Agentic Task
Trace phishing emails to the sending IP and report abuse

Every 15 minutes, forwarded phishing reports get traced back to the server that really sent them, with a verdict in Slack and the worst senders reported.

AbuseIPDB
Gmail
Slack
Agentic Task
Turn procurement portal tenders into CRM deals each morning

Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.

Anchor Browser
Google Sheets
HubSpot
+1
Agentic Task
Turn each week's football fixtures into a venue staffing plan

Every Monday, rank the week's matches by expected demand, put the big ones on your venue calendar, and post a rota-ready summary to Slack.

API-Sports
Google Calendar
Slack
Agentic Task
Turn 5 star Yotpo reviews into a weekly marketing content queue

Every Tuesday we pull your best new reviews, draft social captions, email testimonials and product page quotes, then stage them in Notion for approval.

Yotpo
Notion
Slack
Agentic Task
Catch bad shipping addresses before you buy the label

Every weekday morning, unfulfilled orders get an address check: harmless typos fixed automatically, risky addresses held with a note to the customer.

Shippo
Shopify
Gmail
+1
Agentic Task

Stop letting good deals go quiet.

Put a second pair of eyes on your pipeline every morning, so the deals drifting toward a slow no get caught while there is still time to save them.