# Process flow shapes

## Standard shapes

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><p><strong>Assert</strong> </p><p>Add an expected payload to compare/validate your processed payload.</p></td><td></td><td></td><td><a href="/files/s3Hwms0s4tjwhaFyf8vD">/files/s3Hwms0s4tjwhaFyf8vD</a></td><td><a href="/pages/UImyCH9s7yBX09kl8KKy">/pages/UImyCH9s7yBX09kl8KKy</a></td></tr><tr><td><p><strong>Branch</strong></p><p>Define multiple branches to be executed sequentially, using the same data.</p></td><td></td><td></td><td><a href="/files/V7iVxLMzKet3BaxbQzwC">/files/V7iVxLMzKet3BaxbQzwC</a></td><td><a href="/pages/SbKROjSHiyQePT2FZUN7">/pages/SbKROjSHiyQePT2FZUN7</a></td></tr><tr><td><p><strong>Connection</strong></p><p>Choose a connector instance and an endpoint to for syncing data.</p></td><td></td><td></td><td><a href="/files/oRpif8HPMnp0hJehI9bR">/files/oRpif8HPMnp0hJehI9bR</a></td><td><a href="/pages/ksVeuo8Bz6ah8fn0PpJx">/pages/ksVeuo8Bz6ah8fn0PpJx</a></td></tr><tr><td><p><strong>Filter</strong></p><p>Set filters to refine a payload before further processing takes place.</p></td><td></td><td></td><td><a href="/files/Ads8cnL3hMeKsCWhhZBn">/files/Ads8cnL3hMeKsCWhhZBn</a></td><td><a href="/pages/W8dQNd0BPMY9SOSg7haK">/pages/W8dQNd0BPMY9SOSg7haK</a></td></tr><tr><td><p><strong>Flow control</strong></p><p>Split one payload into smaller batches to be sent in multiple payloads.</p></td><td></td><td></td><td><a href="/files/yhc5MJkWCK9FsHWSnXqD">/files/yhc5MJkWCK9FsHWSnXqD</a></td><td><a href="/pages/uNI6ZNhC4NnwLaAhP1yN">/pages/uNI6ZNhC4NnwLaAhP1yN</a></td></tr><tr><td><p><strong>Manual payload</strong></p><p>Add a manual payload into your process flow for onward processing.</p></td><td></td><td></td><td><a href="/files/7poquULXRnhb9JWIbD3z">/files/7poquULXRnhb9JWIbD3z</a></td><td><a href="/pages/4NgngMhzA8xLo7xLd51X">/pages/4NgngMhzA8xLo7xLd51X</a></td></tr><tr><td><p><strong>Map</strong></p><p>Use field mappings and transformations to define where and how data is mapped from one connection to another.</p></td><td></td><td></td><td><a href="/files/EtbrA99G7dDNYX8wafzY">/files/EtbrA99G7dDNYX8wafzY</a></td><td><a href="/pages/sDacY10PFWZPapzdTUvr">/pages/sDacY10PFWZPapzdTUvr</a></td></tr><tr><td><p><strong>Notify</strong></p><p>Create custom logs and email notifications using static text and/or dynamic content from a process flow.</p></td><td></td><td></td><td><a href="/files/qocrrWly62h9KsViPmq8">/files/qocrrWly62h9KsViPmq8</a></td><td><a href="/pages/qJOdm6pHm3I8Ovog6Ola">/pages/qJOdm6pHm3I8Ovog6Ola</a></td></tr><tr><td><p><strong>Route</strong></p><p>Define routes for cases where data needs to flow down two or more paths.</p></td><td></td><td></td><td><a href="/files/fLhbfP8oyFqnqiNJga9M">/files/fLhbfP8oyFqnqiNJga9M</a></td><td><a href="/pages/7qvE65C5mdtXjrbB4swe">/pages/7qvE65C5mdtXjrbB4swe</a></td></tr><tr><td><p><strong>Run process flow</strong></p><p>Call one process flow (and pass in data) from another to form a chain.</p></td><td></td><td></td><td><a href="/files/ihcyy14GME14Pccj64yo">/files/ihcyy14GME14Pccj64yo</a></td><td><a href="/pages/1YdpDOKiycGviDZd7krP">/pages/1YdpDOKiycGviDZd7krP</a></td></tr><tr><td><p><strong>Set variables</strong></p><p>Define values for flow and/or metadata variables at any point in a flow. </p></td><td></td><td></td><td><a href="/files/bBzGvIblGBu5oqn8SDGA">/files/bBzGvIblGBu5oqn8SDGA</a></td><td><a href="/pages/T9gT7vCqVNpdJ4mwYRsa">/pages/T9gT7vCqVNpdJ4mwYRsa</a></td></tr><tr><td><p><strong>Split</strong></p><p>Split a payload by a given schema element, for onward processing.</p></td><td></td><td></td><td><a href="/files/YOgEh1iS7yVAwtcOGCFS">/files/YOgEh1iS7yVAwtcOGCFS</a></td><td><a href="/pages/fQWZMN73bKUIontUN4LA">/pages/fQWZMN73bKUIontUN4LA</a></td></tr><tr><td><strong>Track data</strong><br>Track given field values in data received from both connector and non-connector sources.</td><td></td><td></td><td><a href="/files/wdAHM6zoeUdXW9BEtlHz">/files/wdAHM6zoeUdXW9BEtlHz</a></td><td><a href="/pages/Y1n6bZHdxkq19kbUGscv">/pages/Y1n6bZHdxkq19kbUGscv</a></td></tr><tr><td><p><strong>Trigger</strong></p><p>Define when and how frequently the process flow will run. </p></td><td></td><td></td><td><a href="/files/cLXvZqmtuWQuaHwozhj1">/files/cLXvZqmtuWQuaHwozhj1</a></td><td><a href="/pages/iaAmboXWSZdWMW8agEKU">/pages/iaAmboXWSZdWMW8agEKU</a></td></tr><tr><td><p><strong>Try/catch</strong></p><p>Handle processing exceptions elegantly with a dedicated path for failed payloads.</p></td><td></td><td></td><td><a href="/files/gjYz5K4jHfLy7BoxqCw6">/files/gjYz5K4jHfLy7BoxqCw6</a></td><td><a href="/pages/YZid3TGyza7ptthhXJRv">/pages/YZid3TGyza7ptthhXJRv</a></td></tr></tbody></table>

## Advanced shapes

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><p><strong>Add to cache</strong></p><p>Add the current data to a cache, which can be retrieved elsewhere in this or other process flows.</p></td><td></td><td></td><td><a href="/files/GFhZGG08dfjCnzIfRte0">/files/GFhZGG08dfjCnzIfRte0</a></td><td><a href="/pages/aGi157tdOz4wMkNdBOWh">/pages/aGi157tdOz4wMkNdBOWh</a></td></tr><tr><td><strong>Callback</strong><br>Return data to your API in a real-time, synchronous call. </td><td></td><td></td><td><a href="/files/1HzN7d7fkKd85VjeF4aE">/files/1HzN7d7fkKd85VjeF4aE</a></td><td><a href="/pages/uVzYgmmLbmQvINQa98BB">/pages/uVzYgmmLbmQvINQa98BB</a></td></tr><tr><td><strong>De-dupe</strong><br>Identify and remove duplicate data from an incoming payload.</td><td></td><td></td><td><a href="/files/E3rGDaD9Zhf3wnRroFGW">/files/E3rGDaD9Zhf3wnRroFGW</a></td><td><a href="/pages/LQRcBGzoCvqv2cEsqUsZ">/pages/LQRcBGzoCvqv2cEsqUsZ</a></td></tr><tr><td><p><strong>Load from cache</strong></p><p>Retrieve data from an existing cache.</p></td><td></td><td></td><td><a href="/files/gpy8n576MDFuhsfSxSYl">/files/gpy8n576MDFuhsfSxSYl</a></td><td><a href="/pages/0Fl03CW16xxoUrQrDhqo">/pages/0Fl03CW16xxoUrQrDhqo</a></td></tr><tr><td><p><strong>Script</strong></p><p>Apply scripts to transform an entire payload for onward processing.</p></td><td></td><td></td><td><a href="/files/uTDKLu6VDnk7J1NBxEgu">/files/uTDKLu6VDnk7J1NBxEgu</a></td><td><a href="/pages/0C93Lh1WJuGoTR9rN6NN">/pages/0C93Lh1WJuGoTR9rN6NN</a></td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://doc.wearepatchworks.com/product-documentation/process-flows/building-process-flows/process-flow-shapes.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
