# Discourse Policy

**URL:** https://meta.discourse.org/t/discourse-policy/88557
**Category:** Plugin
**Tags:** official, policy, included-in-core
**Created:** [May 28, 2018, 1:26am UTC](https://meta.discourse.org/t/discourse-policy/88557 "2018-05-28T01:26:03Z")
**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: [May 28, 2018, 1:26am UTC](https://meta.discourse.org/t/discourse-policy/88557/1 "2018-05-28T01:26:03Z")

</div>

| | | |
| --- | --- | --- |
| :discourse2: | **Summary** | **Discourse Policy** gives the ability to confirm your users have seen or done something, with optional reminders. |
| 📖 | **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. 👍
> 
> [❓&nbsp; **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=policy "Ask for support on configuring and using Discourse Policy") [🐛&nbsp; **Bug**](https://meta.discourse.org/new-topic?category_id=1&tags=policy "A bug report means something is broken, preventing normal/typical use of the plugin") [👀&nbsp; **UX**](https://meta.discourse.org/new-topic?category_id=9&tags=policy "Discussion about the user interface of Discourse Policy, and how features are presented (including language and UI elements)") [💡&nbsp; **Feature**](https://meta.discourse.org/new-topic?category_id=2&tags=policy "Discussion about how existing Discourse Policy features can be improved or enhanced, and how proposed new features could work")

### Features

Discourse policy shares much of its DNA with polls, it has the goal of ensuring members of a group **accept** certain policies by clicking a button.

It has some specific features that set it apart from polls:

1. It **must** apply to a group.

2. It can optionally **nag** members of a group either weekly or daily to **click** accept on a policy.

3. The UX makes it very easy to see who accepted and who did not accept a policy.

### Configuration

#### Screenshots

Before clicking accept

 ![image](https://global.discourse-cdn.com/meta/original/3X/5/e/5e17602e75709311850da6e6e45cf5aca3619763.png)

After clicking “grey” person on top right

 ![image](https://global.discourse-cdn.com/meta/original/3X/8/5/8587bb3f0695b9c5c83a6eb33ba142de8abed456.png)

After clicking accept

 ![image](https://global.discourse-cdn.com/meta/original/3X/d/5/d5c6ed7c752bfadaf1393c5418d86e594b0a2d08.png)

#### Creating a policy

Discourse policy registers a custom `[policy]` BBCode element. Which means you need to write this block of code in your post where you want to show this policy.

```plaintext
[policy group=founders reminder=daily]
I accept this policy will annoy me daily until I click accept
[/policy]

```

In this case the policy applies to the `founders` group and a reminder is sent **daily** to all users that did not accept the policy.

#### Site settings

`policy_enabled` : Enable the discourse policy plugin on the site.

`policy_restrict_to_staff_posts`: Policies may only appear on staff posts.

`policy easy revoke`: Show the accept and revoke buttons at the same time.

#### BBCode attributes

The `[policy]` element can accept the following attributes.

- **group** : the group name that policy will apply to **required**
- **version** : the version number of the policy, bump number up to require all users re-accept the policy
- **reminder** : remind users of the group to accept policy (weekly or daily), optional, default off
- **accept** : text used for accept button, default is “Accept Policy”
- **revoke** : text used for revoke button, default is “Revoke Policy”
- **renew** : number of days or text describing period (monthly, quarterly or yearly) after which a user needs to re-accept policy
- **renew-start** : the first date renewals will start at Eg: `17-10-2017`, useful if you want to set the renewal cadence so it happens every half-year (Jan,June)
- **add-users-to-group** : accepts a single group as input; users who accept the policy will be automatically added into this group (when policy is manually revoked or if the policy version is updated, user(s) gets removed from group)
- **private** : hide users who accepted/did not accept the policy

> ℹ The backend job to [check for policy reminders](https://github.com/discourse/discourse-policy/blob/main/jobs/scheduled/check_policy.rb) runs every 6 hours. If the `reminder` element is set to weekly or daily, users who have not accepted a policy will be sent notification reminders to accept the policy _only if_ they have not already received a reminder notification for the policy within the past week or day.

#### Usage examples

Basic policy:

```
[policy group="team" reminder="daily" accept="Accept" revoke="Ignore" version="1"]
I have read, understand and acknowledge this policy.
[/policy]

```

Bumping the revision number, to require that everyone reads the update:

```
[policy group="team" reminder="daily" accept="Accept" revoke="Ignore" version="2"]
I have read, understand and acknowledge this policy. (Last updated [date=2020-04-23 timezone="America/Los_Angeles"])
[/policy]

```

Periodic auditing task:

```
[policy group="audit_committee" reminder="weekly" renew="90" renew-start="01-07-2019" version="1" accept="Assignment Complete"] 
I have ensured that someone is assigned to this quarterly audit task.
[/policy]

```

### CHANGELOG

### TODO

- Optional immediate reminder for new policies
- Possibly allow certain groups to apply policies (expanding on staff)

> Last edited by @david 2025-07-22T13:14:42Z
> 
> > **Check document**
> >
> > Perform check on document:

---

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