I recently discovered Chatwoot, an open-source customer engagement platform that lets you manage conversations with customers via a website widget, email, Facebook, Twitter, and more. Before finding Chatwoot, I was using Reamaze - a similar service that adds a knowledge base and offers the same omnichannel chat service.

I’ve not been too happy with the knowledge base that Reamaze offers, as it doesn’t let you customize much. There are categories to put articles in, but no way to determine how the table of contents is presented. No ability to send the user through an onboarding guide. Docusaurus is taking over that part of my tool portfolio, but that’s another story.

Which left Reamaze with only chat, which Chatwoot is now replacing. I’d recommend checking out Chatwoot if you’re a creator, it’s been awesome. But let’s get down to the purpose of this post.

Slack Integration

Chatwoot has a Slack integration app, but it’s mostly focused on Slack to Chatwoot messages. I wanted a message in Slack every time a customer sends us a message via Chatwoot. Most free Slack teams also run against the limit of the number of [10] apps you can add to Slack. However, the Incoming Webhook app has seemingly unlimited configurations, so you use incoming Slack webhooks to integrate more than the free team limit.

Then I found that Chatwoot can also fire webhooks whenever a new message is received.

PHP Script

Long story short, I created a small PHP script that Chatwoot can invoke when a new message arrives. The script parses the incoming webhook details from Chatwoot, formats a Slack message from the message, include a link to the Chatwoot conversation, and then sends it to the Slack webhook.

The setup instructions are in the README of the GitHub repository, which you can find here: https://github.com/smitmartijn/chatwoot-slack-notification

Share the wealth!