Flows
The automated conversation at the heart of Ravela — how flows run, what a run is, and how drafts become live versions.
On this page
What a flow is
A flow is an automated conversation, drawn as a map. It begins at a Start node, and each node after that is one step: send a message, ask a question, branch on the answer, wait, tag the contact, deliver a file, hand off to a teammate. Triggers connect real Instagram events — a comment, a DM keyword, a story reply — to the flow’s entry point.
One flow can serve many triggers. A “welcome + deliver the guide” flow might be fired by a comment trigger on one post and a DM-keyword trigger at the same time — the conversation logic lives in one place.
Drafts, versions, and what actually runs
Every flow starts as a draft: editable and testable, but unavailable to ordinary live triggers. A live-test session can still send real messages. Publishing takes a snapshot of the flow — an immutable version — and that snapshot is what runs in production.
This has a comforting consequence: editing a published flow never disturbs the live automation. Your changes accumulate as “unpublished changes” while contacts keep flowing through the last published version; republishing cuts a new version and switches traffic to it. Version history keeps each published snapshot with its number, publisher, and notes.
Need it offline? Pause the flow from the Flows list. It returns to draft and stops new live runs; Ravela also cancels in-progress runs and their pending work. The saved flow remains available to edit and publish again.
What a run is
A run is one contact’s journey through a flow — started by a trigger, stepping node by node. Runs are often alive for a while: a run can be waiting for a reply, a quick-response tap, a form submission, a scheduled time, or the end of a delay. The Runs page shows each one with its status, duration, and — when something stopped it — the reason.
Statuses read the way you’d hope: Running, the Waiting family (for input, for a response, for a form, delayed, scheduled), Completed, Failed, and Expired. Reasons are specific — “24-hour window expired,” “contact opted out,” “account disconnected” — so a stopped run is a diagnosis, not a mystery.
Data flows through the conversation
Flows read and write data as they go. Variables in double curly braces personalize any message — {{username}} for the contact’s handle, {{trigger.keyword}} for the word that started it all. Answers captured by an Ask for Input node become {{input.yourField}}, form submissions become {{form.yourKey}}, and the Data node writes tags, custom fields, and scores onto the contact record itself.
That contact record is shared across the platform — the same tags a flow writes are the ones your inbox shows and later flows branch on.
Room to build
There’s no cap on how many flows you create or how many nodes a flow contains — on any plan. The guardrails are qualitative instead: validation blocks structural mistakes like a missing Start node or a loop with no exit, and Instagram’s content limits are checked per message. Build the conversation the way it should work; the builder will tell you if a step can’t ship.