Odoo Integrations
Odoo and Slack
Slack integration requests are notification requests wearing a bigger name. An incoming webhook covers most of them in an afternoon, and the interesting decision is not how to send the message but which messages are worth sending at all.
Part of our guide to Odoo Integrations
No native module
Verified against the Odoo 19 source: no Slack module in either edition. Three routes exist, and they differ enormously in cost.
An incoming webhook. A URL that accepts a POST and posts it as a message. Minutes to set up, no OAuth, no app.
A third-party app from the Odoo Apps Store, if one fits and is maintained for your version.
A custom Slack app. Needed for anything interactive: buttons, slash commands, responding to messages.
Most requests are satisfied by the first.
Sending notifications properly
The mechanics are trivial. The decisions around them are not.
Send it out of band. Not inside the user's save. An unreachable Slack endpoint should never slow someone's work or roll back their record, and it will be unreachable at some point.
Link, do not narrate. A message saying what happened with a link to the record is useful. A message containing every detail invites people to act from Slack without opening the system, and then the decision exists in a chat thread and not in the record.
One channel per purpose. This is the item that decides whether the integration survives. A channel receiving every event gets muted within a fortnight, and a muted channel is worse than nothing because everyone assumes it is working.
Be deliberately stingy about what earns a notification. The test is whether somebody would act on it. Anything else is a report, and reports belong in Odoo where they can be filtered.
When a Slack app is justified
Interactive Slack, approving from a button or querying with a slash command, needs a real app: a public endpoint to receive callbacks, signature verification so you know Slack sent it, and permission checks so the Slack identity maps to someone actually allowed to perform the action.
That last point gets skipped and matters most. A button that approves a purchase order must verify that the Slack user is authorised in Odoo, not merely that they are in the channel. Otherwise channel membership has quietly become an approval right.
It is worth building when the interaction volume is high enough that context switching costs real time, and not worth it for something that happens twice a week.
Do not move discussion out of the record
Odoo's chatter attaches the conversation to the thing being discussed and keeps it. A Slack thread belongs to a channel and to the people who were there.
Six months later, the question is always "why did we do this", and the answer needs to be on the record rather than in a channel somebody has since left.
Notifications in Slack, discussion on the record. Slack points at the work; Odoo holds the reasoning.
Operational notes
Treat the webhook URL as a credential. Anyone with it can post to that channel as your integration.
Expect it to break. Webhook URLs get revoked, channels get archived, and workspaces get reorganised. The failure is silent by nature, which is why the check that matters is "have we posted successfully in the last day", not "did anything error".
Rate limits exist. A batch job that notifies per record will hit them and drop messages. Aggregate: one message saying twelve orders need attention beats twelve messages.
The same pattern, with different plumbing, applies to Microsoft Teams.
FAQ
Questions, answered.
Is there a native Slack connector for Odoo?
No. Odoo 19 has no Slack module in Community or Enterprise. The routes are an incoming webhook for notifications, a third-party app from the Odoo Apps Store, or a custom Slack app for anything interactive.
How do I send Odoo notifications to Slack?
Create an incoming webhook on the Slack channel and have Odoo POST to it when the event occurs. Send it from a queue or a scheduled action rather than inside the user's save, so a slow endpoint cannot block their work.
Can users approve Odoo records from Slack?
Only with a proper Slack app that handles interactive components, which means an endpoint receiving the callback, signature verification and permission checks. It is real work, and it is justified when approvals are frequent enough that the context switch is a real cost.
Keep reading
More on Odoo Integrations.
The full guide, plus the other articles in this cluster.
With CODEerts
Want your systems talking properly?
We are certified Odoo partners. We connect Odoo to stores, payment providers, messaging and reporting tools, and we maintain those connections through upgrades.
See how we can helpBook a callReady to make Odoo work the way your business does?
Book a free callCODEerts is a team of certified Odoo partners and full-stack engineers. We implement, customise and support Odoo ERP, then build the software around it.