> For the complete documentation index, see [llms.txt](https://docs.middle.app/middle-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.middle.app/middle-docs/release-notes/june-3-2026.md).

# June 3, 2026

## Product updates

### Real-time Workflow API

Middle now has a real-time workflow API. Via this API, you can list what workflows can be invoked, and invoke one. This is a powerful way to support real-time, transactional integrations driven by a user's actions.

<figure><img src="/files/ztP7UBmW8kAoUZLEJSGA" alt="" width="375"><figcaption><p>Adding a real-time workflow API endpoint</p></figcaption></figure>

The new real-time workflow API is compatible with modules. You can make a module feature that requires a module-defined workflow be enabled via the real-time API, allowing a standardized way to set up an API across several accounts.

#### API keys

An API key allows access to a single account. You can't use a single API key to access more than one account. To configure a new API key, navigate to the API keys option on the left side of any account page.&#x20;

<figure><img src="/files/icy2pltja8bXVHXnYtgp" alt="" width="250"><figcaption><p>API Keys page in an account</p></figcaption></figure>

From here you can create a new API key. Follow the instructions on the page to generate and copy the key itself. You cannot retrieve a key once it has been generated, but you can rotate the key (this generates a new one and deactivates the old one).

<figure><img src="/files/6kiph9FhazH3Ug8H5Ot1" alt=""><figcaption></figcaption></figure>

### Workflow variables

Workflow variables have been updated to work more like normal variables in programming in general.&#x20;

You can declare them, then set them throughout a workflow.&#x20;

#### Variable drawer

Access the new variables drawer with the "Variables" button, which appears above each step drawer and at the top of the Edit Workflow page

<figure><img src="/files/xsaVIB9zpFrCxCjroGKv" alt="" width="375"><figcaption><p>New "variables" button at the top of the edit workflow page </p></figcaption></figure>

Within the variable drawer, declare a variable. This variable begins undefined, and if accessed will return `null` until it is set.

<figure><img src="/files/AXHTfXffkqvzSmC65XCe" alt="" width="375"><figcaption><p>New variables drawer </p></figcaption></figure>

Variables can also be created when assigning them.

#### Variable assignment

You can assign to variables using the Set Variable step, or in Actions, to map Action output into a variable.&#x20;

The "Set Variable" step has been changed significantly. Prior to today's update, this step required users to declare an whole object (using the object attribute editor) and then set all the values in that object.

Now, this step just requires that you set any declared variable. (You can also declare a new variable right there in this step, by either selecting the "Create..." option from the variable drop-down, or the "Variables" button at the top.)

<figure><img src="/files/omcah4iT0w0VrKxvNuSj" alt="" width="375"><figcaption><p>"Set variable" step example</p></figcaption></figure>

Actions can now directly assign to variables. This is now the preferred and *only* way to access the output of an action.

<figure><img src="/files/4KRt68gLzEeoiXDb7GCy" alt="" width="375"><figcaption><p>Variable assignment from an Action step</p></figcaption></figure>

#### Why was this change made?

Previously, accessing data from earlier in the workflow meant choosing a specific prior step and pulling out some data from it. With this update, workflows can now join the path of execution, which means it's no longer clear what steps have been executed in the past. Declared variables resolves this issue. It also makes workflows easier to understand.

#### What happens to old workflows?

Old workflows have been grandfathered into the new system, by declaring and writing to variables in just the same way as how the old system worked.

You will find that your old workflows declare variables in the form of "WORKFLOW:{N}" where N is the workflow step, and the type is the prior output object of that step.

All current workflows will continue working just fine. But for new versions of your workflows, we recommend refactoring them to make use of the new variable system.

### Joining the path of execution

Workflows can now join the path of execution. This means, for example, that you can have two or more steps' next step, be the same step. This should reduce significantly the amount of duplication that currently has to be encoded in workflows that have branching paths.

You can also detach steps and move them around.&#x20;

<figure><img src="/files/Qbm6vhAMEzw9QqwuHqO3" alt="" width="375"><figcaption><p>Example of joining the path of execution</p></figcaption></figure>

### Return node

Workflows also have a new "Return" step which ends the path of execution and returns a value back to the caller, in the case of a Real-time Workflow API call.&#x20;

### Other updates

Workflow Triggers have been moved off the home page of an account and to their own dedicated subpage. This should declutter the home page and allow more room for automated warnings.

<figure><img src="/files/c47x5kBKbFr62YfEUnpJ" alt="" width="256"><figcaption><p>Workflow triggers now have a dedicated page</p></figcaption></figure>

Added arrays of objects to the Module variable selection.

## &#x20;Bug fixes

Fixed a 500 error that could occur when re-executing workflows without any search selection.

Changed the default poll sync overlap and frequency from 5 minutes to 15 minutes.

Fixed issue displaying app connection names in the left sidebar.

Fixed an issue where the wrong app connection could be used in an assisted variable within a module feature.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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://docs.middle.app/middle-docs/release-notes/june-3-2026.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.
