Publishing Flows
Manage the draft and publish lifecycle of your flows.
Publishing Flows
Publishing controls whether a flow is visible to your app users. Setgreet uses a draft system that lets you edit published flows safely -- your changes stay in draft until you explicitly publish them.
The draft system
When you create a new flow, it starts in Draft status. Draft flows are never served to the SDK, so your app users will not see them. You can freely add screens, configure components, set up triggers, and rearrange the flow graph without any risk.
Once a flow is published and live, the draft system becomes essential. Every edit you make to a published flow is saved to draft fields rather than the live version. This means:
- Your app users continue to see the last published version.
- You can make changes over multiple sessions without affecting the live experience.
- A visual indicator in the flow builder shows when a flow has unpublished changes.
Publishing
When you are ready to push changes live, click Publish in the flow builder toolbar. Publishing performs a single atomic operation:
- Draft fields (nodes, edges, start node, canvas state) are copied to the live fields.
- Draft screen content is promoted to published.
- The draft is cleared and the pending changes indicator resets.
After publishing, the SDK picks up the new version on its next sync. There is no additional delay -- your changes are live immediately.
Publishing is an all-or-nothing operation. You cannot publish individual screens or partial graph changes. The entire draft is promoted at once.
Unpublishing
You can unpublish a flow to remove it from SDK responses. Unpublishing returns the flow to Draft: it does not delete the flow or discard any configuration, it simply stops the SDK from serving it.
One exception: a flow that is a variant in a running or paused experiment cannot be unpublished. Complete or stop the experiment first.
Common reasons to unpublish:
- A campaign has ended and you want to stop showing the flow.
- You discovered an issue and need to pull the flow while you fix it.
- You want to pause a flow temporarily and re-publish it later.
To unpublish, open the flow settings and change the status from Published to Draft.
Flow priority
When a user matches multiple published flows at the same time, Setgreet decides in two steps.
Targeted flows come first. A flow with trigger conditions always outranks a flow without them, whatever their priority values. Give a flow trigger conditions if it should win over a general fallback.
Then priority breaks the tie. Within each group the highest priority wins. Priority is one of 0, 1, 2, or 3, and defaults to 1. Set it from the flow settings panel:
- A limited-time promotion should have higher priority than a general onboarding sequence.
- A critical bug workaround announcement should take precedence over a feature tip.
Lifecycle summary
| Status | SDK visibility | Editable | Notes |
|---|---|---|---|
| Draft | Not visible. | Yes. | New flows start here. Unpublishing returns a flow to this state. |
| Published | Visible when trigger conditions match. | Yes -- edits save to draft fields. | Requires explicit publish to update the live version. |
| Published with pending changes | Visible (last published version). | Yes -- draft fields hold unpublished edits. | Publish to promote the draft. |
Best practices
- Always preview before publishing -- use the preview feature to walk through the flow and verify every screen, branch path, and trigger condition.
- Use descriptive flow names -- when multiple team members work on flows, clear names prevent accidental edits to the wrong flow.
- Set priority intentionally -- review priorities across all published flows to ensure the most important experience wins when multiple flows compete.
- Unpublish instead of delete -- if you might need a flow again, unpublish it rather than deleting it. You preserve all configuration and can re-publish instantly.
- Coordinate with your team -- draft edits sync live across everyone in the flow (see Realtime Collaboration), and presence cues show who is editing where. Still, align with teammates before publishing so a draft goes live only when everyone agrees it is ready.