Open the wizard
On the Placements page, click New Placement in the header. The dialog is titled New Placement with the description “Define a trigger point inside your app.” A progress indicator at the top shows the three steps.Step 1: Basic Info
Enter a Placement ID
Type the key your app will use, for example
after_signup_success. The field auto-formats as you type: it lowercases the value and replaces spaces and hyphens with underscores. The rules are:- Must start with a lowercase letter.
- Only lowercase letters, numbers, and underscores.
- Maximum 64 characters.
Add a description (optional)
The Description field is an optional note for your team (“Help your team understand when this placement should trigger”). It is not shown to users.
Step 2: Link Assignment
Choose the default flow
Under Default Flow, pick a flow from the dropdown (“Choose a published flow”). Only flows with a published version appear here. Each option shows the flow name and its type. The helper text reads “This flow will be shown when the placement triggers.”If you see “No published flows available”, publish a flow first, then return here.
Set an audience (optional)
The Audience (optional) section defaults to All users. Click Add Filter to restrict who sees the flow. Each condition is a property, an operator, and a value, and you choose whether ALL or ANY conditions must match. See Audience targeting for the full property and operator reference.
Step 3: Summary
The final step shows a review table with the Placement ID, Description, Default Flow, Audience, and Platforms, plus an SDK Integration snippet you can copy. Review the values. When everything is correct, click Create Placement. (In edit mode the button reads Update Placement.)Connect the key to your SDK call
The placement key you just created is the string your app passes to the SDK. The dashboard’s summary shows a shorthand snippet, but the real iOS call ispresentPlacement(_:from:):
The dashboard’s SDK Integration card displays
FlowPilot.trigger("after_signup_success"). That is illustrative shorthand. The actual public iOS API is presentPlacement(_:from:), not trigger.Editing a placement later
Open the placement’s detail page and click Edit (or use Edit in the row’s actions menu on the list). This reopens the same wizard in edit mode, pre-filled with the placement’s current values. You can change the description, platforms, default flow, and audience. The Placement ID is locked in edit mode (“Placement ID cannot be changed after creation”).Attaching a flow from the editor
You can also point a placement at a freshly published flow from inside the editor. When you publish, the editor offers an Attach to placement action so you can route traffic to the new version without leaving the editor. See Publishing.Common mistakes
- Key mismatch. The string in
presentPlacement("...")must exactly match the placement ID. The dashboard lowercases IDs, so match that in code. - iOS not in the platforms list. If you only select Android or Web, an iOS device gets no flow. Include iOS.
- No published flow. The default flow dropdown only lists published flows. If it is empty, publish a flow first.
- Created under the wrong app. Placements are app-scoped. Confirm the app switcher shows the right app before creating the placement, and that your SDK is configured with that app’s ID.