Core concepts
Flows
The automated conversation at the heart of Ravela — how flows run, what a run is, and how drafts become live versions.
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: fully editable, live-testable, invisible to real followers. 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 reverts to draft, stops running from live events, and loses nothing.
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.