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

# Actions

> Every action a workflow can take, from assigning a thread to calling your own endpoint.

Actions are the steps in your workflow that do something: assign a thread, update a property, send a message, or call an external service.

## Assignment

* **Assign to user** - Assigns the thread to a specific user or machine user.

* **Assign to company account owner** - Assigns the thread to the account owner of the customer's company.

* **Assign to team** - Distributes the thread using round-robin assignment across team members.

* **Unassign thread** - Removes all assignees from the thread.

## Thread properties

* **Set priority** - Sets the thread priority to: Urgent, High, Normal, or Low.

* **Set tier** - Moves the thread to a specific tier.

* **Set status** - Changes the thread status.

* **Apply labels** - Adds one or more labels to the thread.

* **Lock thread** - Locks the thread.

## Messages and notes

* **Send message** - Sends a message to the customer.

* **Add note** - Adds an internal note to the thread, only visible to your team.

## Integrations

### Send HTTP request

Sends an HTTPS POST request to any external endpoint. You configure the URL, headers, and a JSON body. The request runs in the background after the workflow step completes.

Use this action to connect your workflows to any service that accepts webhooks or API calls:

* Post to a Slack channel with a [Slack incoming webhook](https://api.slack.com/messaging/webhooks)

* Create a Linear issue through the [Linear API](https://developers.linear.app/docs/graphql/working-with-the-graphql-api)

* Trigger a PagerDuty incident with their [Events API](https://developer.pagerduty.com/docs/events-api-v2/overview/)

* Send a notification to Discord with a [Discord webhook](https://discord.com/developers/docs/resources/webhook)

* Call your own internal API to run custom logic

The request body supports variable interpolation. Available variables:

* `{{ customer.email }}`, `{{ customer.fullName }}`, `{{ customer.shortName }}`

* `{{ thread.ref }}`, `{{ thread.id }}`, `{{ thread.externalId }}`, `{{ thread.title }}`, `{{ thread.description }}`, `{{ thread.url }}`

* `{{ workspace.id }}`

Example body:

```json theme={null}
{
  "threadId": "{{ thread.id }}",
  "customer": "{{ customer.email }}",
  "title": "{{ thread.title }}"
}
```

This action uses the same security measures and retry policy as Plain webhooks.

Actions run in sequence. If an action fails, the workflow stops and is marked as failed. Put your most important actions first.
