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

# Configure workflow blocks

> Understand conditions, waits, AI steps, ticket actions, HTTP requests, and Telegram notifications.

Click a block on the **Workflow** canvas to configure it. Add blocks from the picker or by right-clicking empty canvas space, then connect them to the path that should reach them.

## Conditions and timing

| Block | Use it to |
| - | - |
| **If / else** | Check ticket fields and follow the matching or non-matching path. Combine rules in groups when needed. |
| **Wait for** | Pause the workflow before continuing. Configure its duration and any cancellation or timeout behavior shown. |

A wait delays the next step of that run. It does not combine several incoming messages into one run.

## AI steps

| Block | Result |
| - | - |
| **Prepare context** | Generates or refreshes an internal conversation brief grounded in available knowledge. |
| **Triage message** | Suggests priority, routing, and labels without applying ticket changes. |
| **Draft reply** | Creates a draft for human review without sending it. |

Use optional **Instructions** to guide the step. Keep them specific to the result you want and use the available variables when needed. Instructions do not grant new permissions.

AI steps use workspace credits during real runs. Automatic customer reply sending is not available in this editor.

## Ticket actions

| Block | Effect |
| - | - |
| **Set status** | Changes the ticket to a workspace status. |
| **Set priority** | Applies a workspace priority. |
| **Assign ticket** | Assigns an active teammate or routes the ticket to a team. |
| **Unassign** | Clears the owner, team, or both. Followers remain on the ticket. |
| **Update labels** | Adds or removes the selected workspace labels. |
| **Snooze ticket** | Snoozes for one minute to 30 days. An already-snoozed ticket keeps its existing wake time. |

Ticket actions apply changes during a real run. The suggestions from **Triage message** do not automatically become input to these actions; configure the values you intend.

**Snooze ticket** changes the ticket and continues the workflow immediately. Use **Wait for** when the next workflow step should be delayed.

## Send an HTTP request

**Send HTTP request** sends a `POST` request to an HTTPS endpoint with an `application/json` body.

1. Enter the destination **URL**.
2. Add any headers the service requires.
3. Enter a JSON object in **Body**.
4. Type `{{` inside a JSON string to choose an available variable.
5. Check the configuration, save the workflow, and verify delivery in a controlled real run.

Example body:

```json theme={null}
{
  "ticketId": "{{conversation.id}}",
  "workspaceId": "{{workspace.id}}",
  "workflowId": "{{automation.id}}",
  "runId": "{{run.id}}",
  "event": "{{trigger.type}}"
}
```

Those five variables are supported in body string values. Do not use variables in JSON field names. The body must be a JSON object and fit within 16 KB.

Header values are hidden after saving; leave a saved value in place or type a replacement. Use the header fields for credentials instead of putting them in the URL or example body.

The request runs through a delivery queue. Completing the workflow step does not prove that the receiving service accepted it. Check attempts, responses, and retries in [Run details](/guides/monitor-workflow-runs).

## Send a Telegram notification

Choose an active Telegram bot connection or create one for the intended chat. This block sends fixed workflow-run metadata to the chat pinned to that connection. It does not include ticket content.

Incoming webhooks, outgoing HTTP requests, and Telegram notifications are separate connections. Connecting Linear to Evelin does not configure these destinations.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.