| Summary | Discourse Assign provides the ability to assign topics and individual posts (both private and public) to a user or group. | |
| Install Guide | This plugin is bundled with Discourse core. There is no need to install the plugin separately. |
Required user level: Administrator (for configuration), members of allowed groups (for using assignments)
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.
![]()
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
- Go to Admin → Plugins and find Discourse Assign.
- Toggle the plugin to enabled, or navigate to Admin → Settings and search for
assign_enabled. - Set
assign_enabledto true. - Configure
assign_allowed_on_groupsto 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_statusis 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:
- Go to the group’s settings page.
- Under Interaction, find the “Who can assign this group” option.
- 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.
- Enable statuses by setting
enable_assign_statusto true. - Configure available statuses with the
assign_statusessetting. The default statuses areNew,In Progress, andDone, separated by the pipe|character. - 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
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 Admin → Customize → Text. 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 document
Perform check on document:



