Discourse Assign

:discourse2: Summary Discourse Assign provides the ability to assign topics and individual posts (both private and public) to a user or group.
:open_book: Install Guide This plugin is bundled with Discourse core. There is no need to install the plugin separately.

:person_raising_hand: Required user level: Administrator (for configuration), members of allowed groups (for using assignments)

:discourse2: Hosted by us? This plugin is available on our Business and Enterprise plans. Data Explorer | Discourse - Civilized Discussion

Overview

Discourse Assign adds the ability to assign topics and individual posts — both public and private — to a specific user or group. Assignments appear as tag-like annotations in the topic list and topic header, providing a clear indication of who is responsible for a given topic or post. This is particularly useful for support teams, moderation workflows, and any scenario where you need to track task ownership.

Assigned user annotation in a topic list

Discourse Assign is bundled with Discourse core and doesn’t require separate installation. It’s disabled by default and can be enabled through admin settings.

Enabling Discourse Assign

  1. Go to AdminPlugins and find Discourse Assign.
  2. Toggle the plugin to enabled, or navigate to AdminSettings and search for assign_enabled.
  3. Set assign_enabled to true.
  4. Configure assign_allowed_on_groups to specify which groups can use the assign feature (see Configuring permissions below).

Assigning topics and posts

Assigning a topic

When you open a topic and you’re a member of an allowed group, you’ll see an Assign button in the topic controls. Click it to open the assignment modal, where you can:

  • Select a user or group to assign the topic to
  • Optionally set a status (if enable_assign_status is turned on)
  • Optionally add a note with additional context

Assigning an individual post

In addition to assigning entire topics, you can assign individual posts. This option appears under the (show more) button in the post toolbar for posts other than the first post. When a post is assigned, assignment information appears in the topic header and the first post contains a link to the assigned post.

Assigning to groups

Topics and posts can be assigned to user groups. When a group is assigned, each group member receives a notification. To make a group available for assignment:

  1. Go to the group’s settings page.
  2. Under Interaction, find the “Who can assign this group” option.
  3. Set it to the desired permission level (by default it’s set to “nobody”).

Unassigning

To unassign a topic or post, click the button that currently shows the assignee’s name. This opens a dropdown where you can select Unassign. You can also Reassign to a different user or group, or Edit assignments to modify the status or note.

Using assignment statuses

Assignments can optionally include customizable statuses that track the progress of assigned work.

  1. Enable statuses by setting enable_assign_status to true.
  2. Configure available statuses with the assign_statuses setting. The default statuses are New, In Progress, and Done, separated by the pipe | character.
  3. The first status in the list is automatically applied as the default for every new assignment.

Status changes are tracked in small_action posts within the topic, providing an audit trail.

To change the status of an existing assignment, click the assignee button and select Edit assignments. From there, you can update the status using the dropdown.

Configuring permissions

Controlling who can assign

The assign_allowed_on_groups setting controls which groups have permission to use assignments. Members of these groups can:

  • Assign topics and posts to users or groups
  • View assignment data across the site
  • See the “Assigned” tab on user profiles

:warning: When setting assign_allowed_on_groups, use a specific group like trust_level_0 rather than everyone. The everyone option may not work as expected. Using trust_level_0 effectively grants all registered users access to the assign feature.

Assignment visibility

By default, assignment data is only visible to users who belong to one of the assign_allowed_on_groups groups, or to admins. This applies regardless of how the group itself is configured for general visibility:

  • Publicly visible groups won’t expose their assignment tabs or indicators to non-assigned users.
  • Users outside the allowed groups won’t see assignment data even if they navigate directly to an assignments URL.

To make assignments visible to all users, including logged-out visitors, enable the assigns_public setting.

Scenario assigns_public: false (default) assigns_public: true
Members of assign_allowed_on_groups See all assignment data See all assignment data
All other users See nothing See all assignment data

Viewing assigned topics

There are two primary ways to view assigned topics:

Topic list filters

Append query parameters to any topic list URL:

  • https://discourse.example.com/latest?assigned=username — view all topics assigned to a specific user
  • https://discourse.example.com/latest?assigned=* — view all assigned topics across all users
  • https://discourse.example.com/latest?assigned=me — view all topics assigned to you
  • https://discourse.example.com/latest?assigned=nobody — view all unassigned topics

User profile activity tab

Each user who can assign has an Assigned tab under their activity page at /u/{username}/activity/assigned. This tab lists all topics and posts assigned to that user.

Unassigned category filter

Categories can optionally display an “Unassigned” navigation button at the top of their topic list, making it easy to spot topics that haven’t been assigned yet. This is controlled through the category’s settings.

Site settings reference

Core settings

Setting Description Default
assign_enabled Enable the assign plugin false
assign_allowed_on_groups Groups whose members can use assignments and be assigned topics (empty)
assigns_public Allow all users (including logged-out visitors) to see assignments false
max_assigned_topics Maximum number of topics that can be assigned to a single user 10

Automation settings

Setting Description Default
assigns_by_staff_mention Automatically assign a topic when a staff member mentions another staff member false
assign_self_regex A regex pattern that, when matched in a post, auto-assigns the topic to the post author (empty)
assign_other_regex A regex pattern that restricts auto-assignment via mention to posts matching the pattern (empty)
unassign_on_close Automatically unassign topics when they’re closed false
reassign_on_open Reassign previously assigned users/groups when a closed topic is reopened false
unassign_on_group_archive Unassign messages when archived by a group, and reassign when moved back to inbox false
invite_on_assign When a personal message is assigned to a user or group, invite them to the PM if they aren’t already a participant false

Notification and reminder settings

Setting Description Default
assign_mailer When to send notification emails for assignments: never, different_users, or always never
remind_assigns_frequency How often to remind users about their pending assignments 0 (disabled)
pending_assign_reminder_threshold Minimum number of pending assignments before a reminder notification is sent 2

Status settings

Setting Description Default
enable_assign_status Add a customizable status field to every assignment false
assign_statuses Pipe-separated list of available statuses (first one is the default) `New

Tracking settings

Setting Description Default
unassign_creates_tracking_post Create a whisper or small action post when a topic is unassigned true
assigns_user_url_path URL path template for linked assigned user profiles (use {username} as a placeholder) /u/{username}/activity/assigned

Integration with Discourse Solved

Setting Description Default
ignore_solved_topics_in_assigned_reminder Exclude solved topics from assignment reminders false
assignment_status_on_solve Automatically change assignment status to this value when a topic is solved (empty)
assignment_status_on_unsolve Automatically change assignment status to this value when a solution is removed (empty)

Customizing the assignment email template

The email sent when a user is assigned can be customized through AdminCustomizeText. Search for the following keys:

  • assign_mailer.subject_template — the email subject line
  • assign_mailer.text_body_template — the email body text

Thank you to McNeel for sponsoring this work!

Last edited by @Moin 2026-04-07T22:35:33Z

Last checked by @MarkDoerr 2026-04-07T22:09:15Z

Check documentPerform check on document:
57 лайков
Tickets Plugin :tickets:
Generating Support Metrics (with Assign and Solved plugins)
Modifying Staff Roles to go beyond Administrator and Moderator?
Easiest way to pull other users in on a discussion non-publicly?
Recommended workflows for support and community?
Creating Custom Flag
Task manager within Discourse?
Bookmark labels to save for later
Tickets Plugin :tickets:
Creating a User - Tag relation plugin
Using discourse as a community ticket system
Possibly to automatically assign user/users to tags?
Inbox Customisation and Organisation Features
Advise on how to organize my forum categories and tags
Comment on a question instead of answering it
Discourse Assign - how to assign posts using regex
New customer setup
Volunteer Activities - a simple setup for non-hierarchical collaboration
Assigned topic summary for groups
A layout for community projects
Allow Group Mentions in Post Edits to Trigger Notifications (Opt-In Setting)
Implementing KCS
Regarding possibility to use Discourse as an alternative to JIRA or Zendesk
Using Discourse as a social media platform
URL query string params
Hello Community Experts- are we able to configure discussions to be threads AND questions?
Setup Continuous Integration using GitHub Actions
Search filter - only topics / only posts
Tickets Plugin :tickets:
Issue Tracker for Discourse
Assign topics or messages when created via API
Using query strings to filter topic views
New user alerts
Discourse Automation
It would be great to be able to assign personas created in Discourse AI to respond to the topic
Why you should use Discourse internally for your company/team instead of Slack (4 years use case)
How to put own username in header links
Setting timer to be viewed by all and for moderators specifically to follow- up topics
User assignments and kanban
Cannot assign topic to group
Reassigning to a group creates a /u/ link in the @group mention
How Discourse Uses Discourse
How do I assign a topic via the API
Horizon: High Context Topic Cards
Bundling more popular plugins with Discourse core
Advice on a support forum
Performing bulk actions as a moderator
Reminder function for pre-defined trust levels
Different themes per category?
Color of tags in header not changed by Color Scheme
Cannot delete topic that is assigned
Link behavior inconsistent
View PMs assigned to nobody
Unassign topic when marked as solved
Current Projects - January 2026
Using query strings to filter topic views
Time tracking using Discourse?
Tickets Plugin :tickets:
Customize hamburger menu to add switch what switches theme and applies predefiend filter
Send email notifications for small actions

This does not seem to work as of now. If I’m a part of group A and someone assigns group A to a topic, it doesn’t show up for me when I visit /latest?assigned=me.

1 лайк

Hi Kuba. :wave:

That is a filter on the latest page. The mentioned “individual assign list” is at /my/activity/assigned. :+1:

Thanks! Is there a specific reason why those two filters behave differently? :thinking:

1 лайк

Is any way to configure the time of recurred notifications?

UPD: When a topic assigned to Group, users in Group do not receive email notifications. Is it correct? I expected users get an email + recurring emails (every day, every week) like single assignee.

2 лайка

2 posts were split to a new topic: Can assigns be removed when a topic is solved?

Sorry if this was already mentioned (I wasn’t able to find this).

Can non-staff members use this plugin to assign? I wasn’t able to get this plugin working even if the user is moderator. The user has to be admin.

My use case: Team lead (non-staff/non-admin) writes a topic and assigns this to a team member (TL0-3 user). The team lead is not necessary the site admin or staff for Discourse forum because we have many team leads.

It would be helpful even if I can make Team lead a moderator and get this plugin working.

Thanks and appreciate it!

Wouldn’t setting assign allowed on groups do that?

Hi @Jagster,

I have set assign allowed on groups to everyone

For example this user’s permissions are:

But this user is not able to see the assign button

Sometimes “everyone” doesn’t work. Have you tried trust_level_0 instead?

3 лайка

Just a quick note - the Assign button will appear as it’s own option in topics/posts and won’t be under the :wrench: menu :slight_smile:

I just tested it on my end on a TL3 account set under the following conditions and got these results:

TL3 user with everyone permission

Same issue as @carlito, the option does not come up.


TL3 user with trust_level_0 permission

This works as intended.

So…with this being said, you’d need to set trust_level_0 as @Moin suggested. I think it would be expected to work otherwise if you selected everyone, so maybe this is a bug?

3 лайка

@Moin and @HamMan2118

Awesome, that worked!

Thank you both!

2 лайка

How can I find and edit the email template that is sent out when someone is assigned? It doesn’t exist along with the other email templates?

This one?

You can find it at Admin > Site texts. I searched for assign_mailer, which returns the title (assign_mailer.subject_template) and the body text (assign_mailer.text_body_template).

2 лайка

Yes that’s it, thanks!!

3 лайка

Where in the UI is the status exposed?

I see who a topic is assigned to, but I don’t see any way to tell what it’s current status is.

@tknospdr Have you seen this part?

Yes, but that only shows up once you make a change. There’s no visual indication that a status was assigned at all, until you change it from X to Y.

You can see the current status if you go to the ‘Edit Assignment’ tab, below the ‘Assign’ button.

You mean “Edit assignments” that is hidden behind the button that says ‘Unassign…’

If I don’t want to unassign it, I’d hesitate to click on that button right?

  1. That’s unintuitive.
  2. Are you saying that you don’t think a visual cue to let you know what the assigned status of a topic is right out in the open is a good idea?

I just can’t imagine it’s a tall order code wise, and it just makes sense to have it out in the open.

3 лайка