Nudge reps about stalled Odoo deals every Monday in Slack

By General Input

Every Monday, find the opportunities going cold in your Odoo pipeline and send each rep a Slack message with a specific next step for their own deals.

Integrations

  • Odoo
  • Slack

Type

Agentic Task

Categories

  • Sales

Every Monday at 8am, review my Odoo CRM pipeline for deals that have gone stale, and nudge the salesperson who owns each one with a Slack direct message.

Start with Odoo Search & Read Records (search_read) on crm.lead to pull open opportunities. Filter to type = "opportunity" with active = true, exclude anything already won or lost, and only include deals whose expected_revenue is above a value threshold I can set (default 5000). Treat a deal as stalled when its last activity date or write_date is older than 14 days. Read at least name, expected_revenue, stage_id, user_id, partner_id, write_date, date_last_stage_update, activity_date_deadline and probability. Remember that many2one fields such as user_id, stage_id and partner_id read back as [id, "Display Name"].

Skip any opportunity that already has a future activity scheduled. If activity_date_deadline is today or later, or a mail.activity record exists for that lead with a date_deadline in the future, leave the deal out entirely. That rep has already planned their next move and does not need a reminder.

For each remaining deal, gather enough context to say something specific. Read the linked contact from res.partner using partner_id (name, email, phone, company), and pull the recent chatter and any scheduled activities for the deal with search_read on mail.message and mail.activity, filtered by res_model = "crm.lead" and res_id = the deal id.

Then work out a specific suggested next step per deal rather than a generic reminder. A contact who went quiet after a proposal was sent needs a different nudge than one who never got a demo booked, or one sitting in qualification with no contact logged at all. Base the suggestion on what the chatter, stage and contact history actually show.

Group the stalled deals by owner. Resolve each Odoo salesperson to a Slack account by email: read the salesperson's email from res.users using user_id, then use Slack List Users to find the matching workspace member. Open a direct message with Open a Conversation, then use Send a Message to send exactly one message per rep containing only that rep's own stalled deals. For each deal include the deal name, its value, the current stage, how many days it has been stalled, and the suggested next step. One message per rep, never one message per deal.

Finally, log the nudge back into Odoo so the CRM stays the source of truth rather than the reminder only living in Slack. For every deal included in a message, create a follow-up activity on the lead using Create Record on mail.activity, or Call Model Method (execute_kw) to schedule the activity, assigned to the deal owner, dated a few days out, with the suggested next step as the summary and note.

Handle the edges sensibly. If a salesperson has no matching Slack account, skip the message for them, note it in the run summary, and still log the Odoo activity. If a deal has no owner set, group it into a single unassigned list and report it rather than dropping it silently. If nothing is stalled for a given rep, send them nothing at all instead of an empty message.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentWin back LiveChat visitors whose chats went unansweredChat quality review board for LiveChat support leadsWin back no-show and cancelled appointments every morningLive Loop returns analytics with product-level drill-downNewsletter pre-flight and approval board for Mailjet sendsTurn a prospect spreadsheet into personalized sequence enrollmentsMailjet email delivery lookup console for support teamsCatch feature flags that never got switched on in productionKajabi customer support console for member access fixes