Flowboard already handles the common actions used in most flows:Documentation Index
Fetch the complete documentation index at: https://docs.flow-board.co/llms.txt
Use this file to discover all available pages before exploring further.
nextpreviousfinishdeeplinkweblinkrate_apprequest_permissionjump_to
customActionBuilder(action, ctx, data).
Native iOS uses a different surface:
onCustomAction(context) handles only custom actions, and onAction(context) lets you observe any action before Flowboard performs its default behavior.What the handler receives
Your handler receives:action: the action name from the flow, such asopen_checkoutctx: the same Flowboard context used by custom screensdata: a merged payload containing the componentpropertiesand anyactionData
actionData is the right place for business inputs, while component properties can still be useful for labels or presentation defaults.
For native iOS, the equivalent context is FlowboardActionContext, which gives you:
ctx.action.payload: the merged custom action payloadctx.values: the current collected flow valuesctx.screenID: the active screen idctx.sourceComponentID: the tapped component id when available
Basic flow shape
Simple example
Start with one action name and one small handler.On native iOS, custom actions are side-effect hooks. They do not expose
ctx.onNext() or ctx.onJumpTo(), so keep navigation inside the flow with standard Flowboard actions such as next, finish, or jump_to.Recommended production setup
For production, use one central router with aswitch and move each action into its own helper.
This is the cleanest setup when a flow can trigger multiple business actions.
Recommended structure:
- A thin
customActionBuilder - One
routeFlowboardActionfunction with aswitch - Small helper functions that parse
data, call your services, and decide whether to usectx.onNext(),ctx.onFinish(), orctx.onJumpTo()
.handled or .performDefault from onCustomAction(...) instead of calling navigation callbacks.
Replace
billing and api with your own services. On native iOS, the important contract is the action name, the parsed payload, and whether you return .handled or .performDefault.Practical guidance
Use custom actions when Flowboard should trigger:- A purchase flow from your billing SDK
- Account creation or profile updates in your backend
- Native features that are specific to your app
- Branching decisions that depend on both collected flow values and action-specific payload
actionData for business parameters and ctx.formData or ctx.values for answers already collected in the flow.