Skip to Content

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.

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 call