# Discourse Assign

**URL:** https://meta.discourse.org/t/discourse-assign/58044
**Category:** Plugin
**Tags:** official, assign, included-in-core
**Created:** [February 27, 2017, 9:08pm UTC](https://meta.discourse.org/t/discourse-assign/58044 "2017-02-27T21:08:19Z")
**Posts on this page:** 1
**Showing post:** 1

<div class="post-metadata">

### Author: ![Discourse](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/discourse/32/148734_2.png) [@Discourse](https://meta.discourse.org/u/Discourse)
#### Post date: [February 27, 2017, 9:08pm UTC](https://meta.discourse.org/t/discourse-assign/58044/1 "2017-02-27T21:08:19Z")

</div>

| | | |
| --- | --- | --- |
| :discourse2: | **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. |

> [@](#):
>
> :discourse2: As this is an #official plugin maintained by the Discourse team, #Support, #Contribute > Bug, #Contribute > UX , and #Contribute > Feature requests can be made in the respective categories here on Meta, and tagged with the appropriate plugin tag. Click on a link below to get one started. 👍
> 
> [❓ **Support**](https://meta.discourse.org/new-topic?category_id=6&body=%3E%20Before%20asking,%20did%20you%20search%20first%3F%20Press%20%F0%9F%94%8D%20at%20the%20upper%20right%20to%20search.&tags=assign "Ask for support on configuring and using Discourse Assign") [🐛 **Bug**](https://meta.discourse.org/new-topic?category_id=1&tags=assign "A bug report means something is broken, preventing normal/typical use of the plugin") [👀 **UX**](https://meta.discourse.org/new-topic?category_id=9&tags=assign "Discussion about the user interface of Discourse Assign, and how features are presented (including language and UI elements)") [💡 **Feature**](https://meta.discourse.org/new-topic?category_id=2&tags=assign "Discussion about how existing Discourse Assign features can be improved or enhanced, and how proposed new features could work")

> 🙋 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](https://www.discourse.org/plugins/data-explorer.html)

## 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](https://global.discourse-cdn.com/meta/original/3X/1/4/1434884fab8963cb72a3d52a6a28aded6c8210da.png)

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 **Admin** → **Plugins** and find **Discourse Assign**.
2. Toggle the plugin to enabled, or navigate to **Admin** → **Settings** 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](#configuring-permissions-5) 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.

 ![Post-level assignment indicator in a topic](https://global.discourse-cdn.com/meta/original/3X/1/1/113c2418869fcc6d616b042cdaa159739307f077.png)

### 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”).

 ![Group interaction settings for assignment](https://global.discourse-cdn.com/meta/original/3X/5/0/5016d3b390efe554b170f7efa58a9263e6dbb446.png)

### 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.

 ![Assignment status options in the assignment modal](https://global.discourse-cdn.com/meta/original/4X/c/b/7/cb767daa51f617581d25343f3e0fc5ef666f8ce4.png)

 ![Status change tracking post in a topic](https://global.discourse-cdn.com/meta/original/4X/8/b/f/8bf1c786933dd44747611c3dd6861c34c91f0f0d.png)

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](https://discourse.mcneel.com/) 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:

---

_[View the full topic](https://meta.discourse.org/t/discourse-assign/58044)._
