> ## Documentation Index
> Fetch the complete documentation index at: https://ona.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Terms of Service

<Note>Available on the Enterprise plan. [Contact sales](https://ona.com/contact/sales) to learn more.</Note>

Require members to read and accept your organization's terms of service before they can continue using Ona. Acceptance is tracked per member, per version, and per organization, and can be exported as CSV for compliance reporting.

<img src="https://mintcdn.com/gitpod-13c83c2b/-JBSsxRUqlx0SIkZ/images/docs/ona/organizations/terms-of-service-settings.png?fit=max&auto=format&n=-JBSsxRUqlx0SIkZ&q=85&s=23f7eb76e6be445417d27f225f3bcb69" alt="Terms of Service settings page showing the acceptance toggle, Markdown editor, and live preview" width="2850" height="1770" data-path="images/docs/ona/organizations/terms-of-service-settings.png" />

## Enable terms of service

1. Go to **Settings → Organization → Terms of Service**
2. Write or paste your terms in the **Terms markdown** field. The editor supports up to 32,000 characters and renders a live preview alongside.
3. Toggle **Require terms acceptance** on
4. Click **Save**

The first save publishes version 1. From that moment on, members are prompted to accept the current version on their next dashboard load.

## Markdown editor

The editor accepts [GitHub Flavored Markdown](https://github.github.com/gfm/). The following are rendered:

* Headings (`#`, `##`, `###`)
* Paragraphs and line breaks
* Bold and italic emphasis
* Ordered and unordered lists
* Links: `http(s)://` and `mailto:` only; other schemes are dropped
* Inline `code` and fenced code blocks
* Blockquotes
* Tables (GFM)

The following are **not** supported:

* Images: `<img>` tags and `![alt](src)` syntax are stripped
* Raw HTML: escaped as text rather than rendered
* JavaScript or other URL schemes in links: dropped silently

A live preview to the right of the editor shows exactly what members will see.

## Publish a new version

Each saved change to the markdown publishes a new immutable version. Toggling the switch on or off does not create a new version on its own.

* Versions are numbered sequentially starting at 1.
* Saving the page without changing the markdown does **not** create a new version.
* Saving the page with changed markdown creates a new version and sets it as the current version.
* Existing versions are immutable. Earlier text remains available in the acceptance report's version filter so you can reconstruct who accepted what.

When the current version changes, members who had already accepted the previous version are automatically marked as needing to re-accept on their next dashboard load. There is no separate "force re-acceptance" action; re-acceptance follows version changes.

## What members see when terms are enabled

On their next dashboard load, every active member of the organization sees:

1. A persistent banner at the top of the dashboard: *"Your organization requires you to accept its Terms of Service."* with a **Review terms** action.
2. A modal that opens automatically with the current version of the terms. The modal cannot be dismissed by clicking outside, pressing Escape, or navigating away.
3. The **Accept terms** button stays disabled until the member scrolls to the bottom of the terms. A hint reads *"Scroll to the bottom of the terms to enable Accept."* until they reach it.

The banner remains visible across the dashboard until the member reviews and accepts the current version.

<img src="https://mintcdn.com/gitpod-13c83c2b/-JBSsxRUqlx0SIkZ/images/docs/ona/organizations/terms-of-service-member-banner.png?fit=max&auto=format&n=-JBSsxRUqlx0SIkZ&q=85&s=b0c128c78d0ac84d39af81318ded88be" alt="Dashboard banner prompting a member to review and accept organization terms of service" width="2876" height="220" data-path="images/docs/ona/organizations/terms-of-service-member-banner.png" />

Acceptance is recorded per organization and per version. A member who belongs to two organizations accepts each organization's terms independently. When the current version changes, the modal reappears with the new text.

## Acceptance reporting

Track who has accepted in **Settings → Organization → Members → Terms Acceptance**. The tab is visible to organization admins once a version has been published.

The report lists organization members matching the selected filters with their acceptance status for the selected version.

<img src="https://mintcdn.com/gitpod-13c83c2b/-JBSsxRUqlx0SIkZ/images/docs/ona/organizations/terms-of-service-acceptance-report.png?fit=max&auto=format&n=-JBSsxRUqlx0SIkZ&q=85&s=234a525d37c2219c1dc257d72c153500" alt="Terms Acceptance tab showing filters for version, acceptance status, member status, and accepted members" width="2240" height="1020" data-path="images/docs/ona/organizations/terms-of-service-acceptance-report.png" />

You can:

* **Filter by version**: switch between the current version and any earlier published version.
* **Filter by member status**: All, Active, or Suspended.
* **Search** by name or email.

### Export to CSV

Use the **Export CSV** button at the top of the Terms Acceptance tab to download the report. The export reflects the version, member-status filter, and search currently selected in the tab. The download arrives as a gzipped CSV named `terms-of-service-acceptances-<organization-id>-v<version>.csv`.

#### CSV columns

| Column             | Description                                                           |
| ------------------ | --------------------------------------------------------------------- |
| `user_id`          | UUID of the user.                                                     |
| `full_name`        | Display name of the user.                                             |
| `email`            | Email address of the user.                                            |
| `role`             | `admin` or `member`.                                                  |
| `member_status`    | Organization membership status. One of `active`, `suspended`, `left`. |
| `terms_status`     | `ACCEPTED` or `PENDING`.                                              |
| `accepted_version` | Version number the user accepted. Blank if `terms_status` is pending. |
| `accepted_at`      | RFC3339 timestamp of acceptance. Blank if `terms_status` is pending.  |

## Disable terms of service

Toggle **Require terms acceptance** off and click **Save**. The published versions are preserved and the acceptance history remains queryable in the Terms Acceptance tab. Re-enabling later resumes prompting members to accept the current version.

## FAQ

<Accordion title="Who can configure terms of service?">
  Only organization administrators can access the Terms of Service settings page and the Terms Acceptance tab.
</Accordion>

<Accordion title="Do members have to re-accept every time I edit the text?">
  Only when the markdown changes. Saving with no changes (for example, toggling the switch on and off) does not publish a new version and does not require re-acceptance.
</Accordion>

<Accordion title="What happens to members who haven't accepted yet?">
  Members who haven't accepted see the banner and the modal on their next dashboard load. They can browse to the modal and accept at any time. Acceptance is required to dismiss the modal.
</Accordion>

<Accordion title="Can I add images or custom HTML to the terms?">
  No. Images are stripped and raw HTML is escaped as text. Use Markdown headings, lists, links, tables, and code blocks to structure the content.
</Accordion>

<Accordion title="Is the export filtered the same way as the on-screen report?">
  Yes. The CSV reflects the version selector, member-status filter, and search query that are active in the Terms Acceptance tab when you click **Export CSV**.
</Accordion>
