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

# Assignment

<Snippet file="graphql/sdk-note.mdx" />

Threads can be assigned to users or machine users. The latter is useful if you want a bot to handle or are building a complex automation of some kind.

### Assigning a thread

To assign threads you need an API key with the following permissions:

* `thread:assign`
* `thread:read`

<Snippet file="graphql/assign-thread.mdx" />

## Unassigning threads

To unassign threads you need an API key with the following permissions:

* `thread:unassign`
* `thread:read`

<Snippet file="graphql/unassign-thread.mdx" />

## Additional assignees

In addition to the primary assignee, threads can have **additional assignees** — teammates who are also looped in on the thread but who aren't the main person responsible for it. This is useful for collaborative cases or when escalating to a specialist.

You can add or remove either users or machine users in a single call.

### Add additional assignees

<Snippet file="graphql/add-additional-assignees.mdx" />

### Remove additional assignees

<Snippet file="graphql/remove-additional-assignees.mdx" />
