Creating a system to move topics based on given criteria such as a timestamp

Referencing the AI Bot integration see Discourse AI - AI bot - Documentation / Site Management - Discourse Meta

Extra note/edit: I am self hosting
Short Version if you don’t want to read the whole story: I want to use AI Bot to move topics based on “Expiration date” by checking the time stamps of a post.

So I have been thinking about ways to improve the management for my use case of Discourse. I run a Roblox Game community, and we utilize Discourse for our Moderation team to perform logging duties of Game moderation action, and Discord actions.

We have several categories, including temporary bans. When we do our logs, they are done as a post, and the moderator fills a format out, and inserts the Time Stamps relevant to teh action taken for example 7 day ban e.g. Duration: 2026-03-01T05:00:00Z2026-03-08T05:00:00Z (Timestamp is here)

From a management side, I added an Archived Bans for when a ban is over with. Before… you guessed it, we did it by hand, checking bans once a week.

Last fall, I made a python utility [see below] that runs locally, with the Discourse API, it opens a menu and I select which section of bans I want to archive, and it processes said bans by checking each post for a valid time stamp and if that time has passed. It works well, but I wanted to improve further…

And here we are.. I hope you are still here, probably could really summarize this down, but hey, discourse is about conversation right?

I want to enable my moderation team, particularly my most senior ranking ones, to be able to perform this task, without the need to use VS or download anything to their machine. So I attempted to make a plugin version, which I admit I used AI to try and accomplish. I am not sure where it went wrong, I tried to look through the documentation, and even give instructions to follow the processes, but nothing was successful.

My issue with integration via a plugin was stalled with not understanding (or AI) how to integrate into the Interface a Visual based interface (not as colorful as this is with the python version, but sensible in a way that could be understood) e.g. A Big button that says Run Archive process, and utilize the moderation api (?) to flag ones with no valid date or errors etc.

So… here we are at the end of the long version… I want some input that I cannot get from someone other than another human, which is why I am here.

  • Does the AI Bot have this ability?
  • If no, what sensible solution should I try?
  • What did I do wrong with the plugin path, that caused it to just simply not work/be painful (like common mistakes you have made when you first started in this community?)

Value your input. Thanks.

1 Like

I don’t think you need to reach to AI for any of this.

When you create these active ban topics why not also create a topic timer to move it to the correct category after a bunch of time passed, then it is automatic.

Also … any reason you are reaching away from Discourse core here, we already have logs for banned users, why not simply give your trusted users access to a data explorer query to look at history?

The discourse is used to log the bans…. That’s the entirety of the purpose. No players are on the forum…. Only moderator of the game/discord. I don’t think a topic timer would work since bans vary in time. I’m not so much steering away from Discourse Core as I am utilizing it for a specific use case. (See the image)

1 Like

Interesting use case!

I do believe that you would be better served with a few changes:

Move ban expiration to a dedicated custom topic field

This will allow you to validate that every ban has an expiration when a new topic is created, and will make querying for expired bans a breeze.

You could also use our Introducing Experimental Form Templates, which also give your programmatic access to a specific data in a topic.

Add /filter custom filters

With the custom field or form template, now it is easy to add new /filter filters like expired bans, archived bans, etc. Those would then become your moderator main work lists, and they can be added to the sidebar for ease of use.

Automate bans as a whole?

Final piece would be to Discourse to automatically create the bans on Roblox and Discord whenever a topic is created, and also to automatically remove the bans when they expire.

This is kinda easy to do with a recurring job and API access.


If you have a Set up a local Discourse Development Environment, then you can even pass my post here as a spec to Claude Code and it will build it in minutes.

3 Likes

That is quite the interesting take! I will take a look at that! Particularly the Custom fields and templates. Thank you for your take!

More back story since I seem to be intriguing you guys with my use case…. And I like contributing ideas for other gaming communities to find in years to come…

I do indeed have quite a unique use case indeed. We used Trello for years, but due to the limitations they began to impose, it was just getting too sloppy. We had to use 10 workspaces to house our entire team. (Not to mention that they started restricting access levels to a paid feature too)

So with the continued fight with the business model changes it was much easier to transition to a self-hosted solution, I tried other kanban style software, but with past trial usage of Discourse, and the fact that it is both open source, and uses more modern practices for the backend of things, I simply couldn’t resist using it, and am always amazed at the accomplishments and growth that continues with this platform as a whole. September is my 2-year anniversary since the switch, and we have made over 6,000 topics!

The feature I was trying to mimic was one similar to that era, which was an automation to move from one list to another in a specific trigger (so for us it was the end date). Unfortunately, it’s a premium feature that I cannot even demonstrate anymore.

image

I will come back here once I am done exploring and let you know how it goes/what I did especially for the sake of others seeing an idea for a similar use!

2 Likes

Once you have your plugin going, you should also be able to visualize like you used to thanks to Kanban Board

1 Like