ZymuraDocs

Zymura documentation

Everything needed to build a flow, put it on a schedule, and know when something breaks. If you've used Power Automate, Zapier or n8n, most of this will feel familiar — the differences are called out where they matter.

Getting started

A flow is one trigger followed by a chain of actions. The trigger decides when it starts; the actions decide what happens. Nothing else is required.

  1. Create a flowFrom the home screen, pick Automated, Instant or Scheduled — or start from a template and change it.
  2. Set the triggerOpen the first card and fill in its fields. For a schedule, that's an interval and a unit.
  3. Add actionsPress the + between cards. Search by what you want to do, not by connector name.
  4. Test itPress Test. The flow runs immediately and every step reports status, duration, inputs and outputs.
  5. Turn it onFlip the switch in the top right. For schedules, also switch on Runs on the server so it fires without the app open.

Test before you turn on. Test runs are real — they call live endpoints and send real messages. Point them at a scratch channel first.

Triggers

TriggerStarts whenUse it for
ScheduleA repeating interval elapsesReports, syncs, polling, digests
RequestAn HTTP request arrives at your flow's URLWebhooks from other systems, forms
New rowA row is added to a Zymura tableChaining flows, queues
ManualYou press RunOne-off jobs and testing

A flow has exactly one trigger. To start the same work two ways, build a second flow that writes to a table and let a New row flow do the work.

Request triggers

Each request-triggered flow gets its own URL. Anything POSTed to it becomes the trigger body, readable with @{triggerBody()}. Paste a sample payload into the trigger's schema field so field names autocomplete while you build.

Actions

Actions fall into groups. Control covers conditions, loops, scopes and repeat-until. Data covers variables, transforms, JSON, CSV and joins. Connectors covers the outside world — HTTP, Slack, Telegram, Discord, email, SMS, Sheets, OneDrive, Power BI, Notion, Airtable, GitHub, Teams, Excel, Trello, Todoist, Calendar, RSS, weather, X and an AI model. Code runs your own JavaScript when nothing else fits.

Steps run top to bottom. A step that fails stops the chain, unless it sits inside a scope you've handled.

Expressions

Any field accepts an expression. Wrap it in @{ } and Zymura evaluates it as the step runs.

@{outputs('Get rows').body.value[0].name}
@{concat('Hi ', triggerBody().first_name)}
@{formatDateTime(utcNow(), 'date')}
@{if(greater(length(items()), 0), 'has rows', 'empty')}

Referring to other steps

ExpressionGives you
outputs('Step name')Everything a named step returned
body('Step name')Just the response body
triggerBody()The payload that started the flow
variables('Name')A variable you set earlier
item(), items()The current item inside a loop, and the whole list
iterationIndex()Which pass of the loop you're on, from 0

Step names are the reference, so renaming a step breaks expressions pointing at it. Rename early.

Every function

concattoUppertoLowertrimlengthsubstringreplacesplitjoin firstlasttakeskipunion addsubmuldivmodminmax intfloatstringbooljson equalsgreaterlessandornotcontainsemptycoalesceif utcNowformatDateTimeaddDaysaddHoursticks guidrandencodeUriComponent

Debugging an expression. Add a step that sets a variable to it and press Test. Run history shows the evaluated value, which is faster than guessing.

Connections

A connection holds the credentials for one service — a webhook URL, an API key, a bot token. Save it once and every step using that connector can select it, so a rotated key is changed in one place.

Credentials are stored on your device and, when you're signed in, synced to your account so server-side runs can use them. Secret fields never appear in run history: they're masked at the moment the run is written, not hidden in the interface, so the unmasked value is never stored.

Running on the server

By default a flow runs in the browser tab you built it in. Switch on Runs on the server and Zymura executes it on our servers instead, on the schedule you set, with nothing open.

This is available on every plan, including Free. What differs by plan is how often a schedule may fire:

PlanFastest scheduleRuns a month
FreeOnce an hour300
ProEvery 15 minutes10,000
TeamEvery 5 minutes100,000

A schedule set faster than your plan allows is slowed to the floor rather than refused — the flow still runs, just less often.

Sign in first. Server-side execution needs an account, because the server has to know whose flow it is and which credentials to use.

Failure alerts

A scheduled flow that fails at 3am is no use if nobody finds out. Open a server-side flow and press Alerts in the designer toolbar.

Alerts are sent through your own connection — your Slack webhook, your Discord webhook, your Telegram bot, or your email provider. Zymura never sends on your behalf, so the message arrives wherever you already look.

SettingWhat it does
Send it toSlack, Discord, Telegram or email
Using this connectionWhich saved credentials to send with
After this many failuresWait for N failures in a row before the first message
How often at mostCaps how frequently one flow can message you

Steps are already retried before this fires. A failed call is retried with increasing delays when the cause looks temporary — a rate limit, a server error, a dropped connection — and never when the request itself was wrong, because retrying a 400 just fails again. So an alert means it failed for real.

The message names the flow, the step that failed, the error and the time, and links to run history.

Run history

Every run records its status, duration, and for each step the inputs it received and the outputs it returned. Runs from the server appear alongside local ones, marked Server.

Large values are truncated rather than dropped, and marked as truncated so you know something was cut. Retried steps show their attempt count.

History is kept for 7 days on Free, 90 days on Pro and a year on Team.

Plans and limits

FreeProTeam
Flows5100Unlimited
Runs a month30010,000100,000
Fastest scheduleHourly15 minutes5 minutes
Connectors2032Every one
Run history7 days90 days1 year

A run is a run regardless of how many steps it contains. Building a thorough flow costs the same as a trivial one.

Troubleshooting

My scheduled flow isn't running

A step fails with 401 or 403

The credential is wrong, expired, or lacks permission. Open the connection and re-enter it. These are never retried, because the request itself is the problem.

A step fails with 429

You're being rate-limited. This is retried with backoff. If it persists, slow the schedule or add a delay inside loops.

A request works in a tool but not in Zymura

Browsers block many cross-origin calls. Turn on the proxy in Settings so requests are forwarded server-side.

An expression returns nothing

Check the step name matches exactly, including case and spaces, and check run history for the actual shape of what the earlier step returned — the field is often one level deeper than expected, under body or value.

Your data

Flows and connections are stored on your device, and synced to your account when you sign in so they can run on the server. Zymura sends no telemetry and shows no ads.

You can delete your account and everything in it at any time from the account deletion page. See the privacy policy for specifics, including sub-processors, and the terms and refund policy.

Something missing here? Email hello@zymura.app and tell us what you were trying to do — that's how this page grows.