Private message keyword scanner

Update: FIX: compatibility issues with Discourse v 2.2

First, let me say that I am no developer, I only sponsored this work. I will not be able to support this in any way, but I will work with any potential contributors. I am just posting this plugin here to give back to the community.


This plugin may sound a tad controversial so let me explain why was this developed. Our discourse forum is a community marketplace. We facilitate sales of virtual items. This business model is plagued with scammers and conmen, who try to take advantage of our buyers/sellers. We try to stop them before they act, and they usually start working their victims via PMs. This is where we try to monitor malicious activity and stop them in their tracks, and this is why a PM scanner comes in handy.

Plugin Description

The PM scanner scans all PMs sent on your Discourse instance and checks the body of text against a set of keywords you can enter in the settings. If a keyword is found, it sends a notification to all admins.

Plugin Uses

This is a great plugin for keeping users in check who think that going private means that they can break your rules (scamming/spamming/being offensive/harassing). It could also be used for marketing purposes if your forum is e-commerce related.

Plugin Features

Nothing much to write about. It adds an extra setting where you can enter the keywords in your admin panel, and that’s it. The rest is automatic, every time a word is triggered you will get a notification to the PM link (see image below). The plugin also ignores admin messages (basically, admins PM’s aren’t scanned). Also, the plugin only scans while a PM is being sent. There is no way to scan previous, unscanned messages.

Plugin Issues

Currently, it also scans usernames. So, if a user has a word that is entered in your scanner settings, it will trigger the notification every time he/she posts a PM. Not a big issue, but its there.

Plugin Repo

Plugin Screenshots

This is my second contribution to the community! A big thanks to the Discourse team and all the developers on this site.


How does this differ from generally flagged watch words under the admin panel in practice? I presume it doesn’t scan the public facing text but I’d have thought there’d be little difference in reporting unless you’ve noticed otherwise? :slightly_smiling_face:


Doesn’t’ the flagged watch words only work on public posts? And isn’t it meant for stopping profanity? I never fully looked into that feature. This plugin scans PM’s and doesn’t let users know a keyword has been scanned and that it notified admins.

1 Like

No they work anywhere mate and they’re “meant” for whatever purpose you want to tune them towards. I’d suggest that something informing the user that something has been flagged promotes more trust between users and staff.

We use a raft of watch phrases to stop people doing what you’re trying to stop here, we get questions about them every so often and people are happy to know in general terms what we’re screening for and why.

1 Like

In that case, my plugin is useless :smiley: I will look into your way of doing things. So you’re saying I can create a set of keywords that will be picked up in PM’s, and they will notify all admins?

1 Like

Admin/logs/watchwords then pick approve/flag/block/censor to suit mate.


No option to silently notify admins though, so I guess there is some uniqueness to the plugin :smiley:
We have a unique type of business model, lots of conman in our industry. Auto-flagging and/or requiring approval would quickly reveal what can and cannot be said in a conversation, thus giving scammers the edge.

I kind of figured this plugin wouldn’t be useful to anyone else but me :stuck_out_tongue: Thanks for answering.


Getting this when I click on the plugin setting.

1 Like

Which discourse version are you using? Pretty sure that’s the cause as I am a few updates behind. I will solve this in 2-3 weeks and update this thread when there is an update.


Thank you, I am using the latest version.

1 Like

Updated and working with 2.7.0 stable.


No update received on my upgrade page. :slightly_frowning_face:

It seems nothing is changed here; GitHub - worldismine/PM-Scanner: Custom PM scanner

1 Like

Sorry, when I said updated I meant I’ve upgraded our instance to 2.7.0 and the PM scanner works fine here, so the plugin itself didn’t need an update. It works on our instance:

The only thing I can think of is another plugin of yours is causing the conflict.


The problem is when you search pm scanner in setting then these settings appear.

But if you click on the “plugins” then click on “pm scanner” setting “button” then it shows this.

1 Like

I tried both ways and it works for me. :frowning:


My latest version is 2.8.0.beta1.

Can anyone else can see this pls??? Is it’s working on their version? :slightly_frowning_face:

1 Like

If you’re willing to wait, we will have an update for 2.8. However, that may take a while as we only use the stable versions.