> For the complete documentation index, see [llms.txt](https://developers.docstudio.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.docstudio.com/automation-overview.md).

# Automation Overview

### Automations

DocStudio Automations allow you to create and run workflows that perform a sequence of predefined operations automatically. An automation contains a name, an active state, and a workflow consisting of at least two connected bricks.

{% hint style="info" %}
A **brick** is an individual workflow component that performs a predefined operation. Each brick has its own type, configuration, and position in the execution sequence.
{% endhint %}

#### Workflow structure

Each brick has a unique ID and a type that determines the operation it performs. The `next` property specifies which brick or bricks are executed next, allowing the workflow to follow a linear sequence or branch into multiple execution paths.

<figure><img src="/files/DjEPS4lAZ22cuwCl4bB8" alt=""><figcaption></figcaption></figure>

The `config` object contains the settings required by the selected brick type. Depending on the type, these settings can include input files, transformation expressions, filters, connection parameters, processing rules, output file names, and other operation-specific values. The configuration supported by each brick type is defined by its `configSchema`.

Brick types that connect to external systems or services may also require stored credentials. In this case, the brick references the required credentials using `credentialsId`.

#### Passing data between bricks

Some brick types expose named output parameters that can be used by subsequent bricks. When an output parameter matches a configuration field required by the next brick, its value is passed automatically.

<figure><img src="/files/kr8QnFob9KRZgkKC7Z3k" alt=""><figcaption></figcaption></figure>

In this example, `envelope-trigger` provides the `envelope` and `mailbox` output parameters. Because `envelope-label-assignee` requires parameters with the same names, their values are supplied automatically, and only `label` must be specified in its `config`.

### Available bricks

The following bricks are currently available for building automation workflows:

<table><thead><tr><th width="231.272705078125">Name</th><th>Purpose</th></tr></thead><tbody><tr><td><code>webhook-sender</code></td><td>Sends data to a configured webhook URL</td></tr><tr><td><code>json2xml-converter</code></td><td>Converts JSON data to XML</td></tr><tr><td><code>google-document-ai</code></td><td>Processes documents using Google Document AI</td></tr><tr><td><code>envelope-flow-resolver</code></td><td>Resolves an envelope flow and replaces recipient emails with available auto-deposit mailboxes</td></tr><tr><td><code>sftp-uploader</code></td><td>Uploads a file through SFTP</td></tr><tr><td><code>parameter-extractor</code></td><td>Extracts values from input data using XPath or JSONPath expressions</td></tr><tr><td><code>envelope-initiator</code></td><td>Initiates an envelope using data from a source file</td></tr><tr><td><code>api-caller</code></td><td>Sends a GET or POST request to an external API</td></tr><tr><td><code>jsonata-converter</code></td><td>Transforms JSON data using a JSONata expression</td></tr><tr><td><code>sftp-receiver</code></td><td>Receives files through SFTP and filters them using a configured pattern</td></tr><tr><td><code>vchasno-callback-checker</code></td><td>Checks a Vchasno callback using the configured document type and configuration ID</td></tr><tr><td><code>envelope-trigger</code></td><td>Selects envelopes based on configured filters and provides the matching envelope and mailbox</td></tr><tr><td><code>xsd-validator</code></td><td>Validates input against an XSD schema</td></tr><tr><td><code>xslt-converter</code></td><td>Transforms XML data using an XSLT map</td></tr><tr><td><code>if-condition</code></td><td>Evaluates a condition using XPath or JSONPath</td></tr><tr><td><code>sch-validator</code></td><td>Validates input using a Schematron schema</td></tr><tr><td><code>as2-sender</code></td><td>Sends data to an external system through AS2</td></tr><tr><td><code>as2-receiver</code></td><td>Receives data through AS2</td></tr><tr><td><code>envelope-saver</code></td><td>Saves an envelope</td></tr><tr><td><code>gemini</code></td><td>Processes data using a configured Gemini model and prompt</td></tr><tr><td><code>openai</code></td><td>Processes data using a configured OpenAI model and prompt</td></tr><tr><td><code>document-extractor</code></td><td>Extracts a document from an envelope</td></tr><tr><td><code>webhook-receiver</code></td><td>Receives data through a webhook</td></tr><tr><td><code>envelope-approver</code></td><td>Approves an envelope</td></tr><tr><td><code>envelope-label-assignee</code></td><td>Assigns a label to an envelope</td></tr><tr><td><code>eancom2xml-converter</code></td><td>Converts EANCOM data to XML</td></tr><tr><td><code>envelope-filler</code></td><td>Fills an envelope</td></tr><tr><td><code>excel2xml-converter</code></td><td>Converts Excel data to XML</td></tr><tr><td><code>envelope-delegator</code></td><td>Delegates an envelope to another mailbox</td></tr><tr><td><code>envelope-sender</code></td><td>Sends an envelope</td></tr></tbody></table>
