
Launch Week Day 1: Improved targeting and logic

- November 6, 2023
- 2 min read
Welcome to Day 1 of Dopt Launch Week 🚀
Today, we’re excited to announce improved flow targeting and logic. These features enable you to create personalized product onboarding and education flows for different types of users, seamlessly connect flows together, and show users the right flow at the right time.
How improved targeting helps you build better product onboarding and education
Effortlessly build essential flows — The new target features lower the floor to building day-1 personalized flows that drive activation, like flows for users who are invited into an existing workspace
or users who are an admin
.
Build more relevant flows — create truly excellent and more effective experiences by making it easy to build personalized flows like users who signed up for the Plus plan in the last 30 days and have completed the onboarding checklist
.
Easier collaboration — anyone on the team, including non-developers, can create targeting rules and ship them without a code push.
Air traffic control — Centralizing targeting rules into Dopt creates a source of truth and an “air-traffic control” system that makes it easy to understand which users will see what flow and when they’ll see it, ensuring you won’t ship annoying or spammy experiences.
Watch Karthik, one of our engineers, build a personalized feature education experience using our improved flow targeting.
Let’s get into the details!
Date and time targeting

Targeting on date is one of the most common and useful types of targeting, especially as you scale into many flows. With our date and time expressions, you can create both relative times and absolute times targeting.
Targeting with date and time is useful for:
- Creating experiences that align with common user lifecycle experiences, like a 14-day trial:
datediff(user.properties.signed_up, now(), "day") <= 14
- Only showing an announcement to existing users so you don’t spam new users:
user.properties.signed_up < $launch_date
- Scheduling a flow to go live at a future date:
today() > $launch_date
We’ve also included a ton of new date functions like now()
, today()
, and date(…)
.
Dopt flow state targeting

You can now target users based on Dopt flow states — if the user has started, is in progress, or has finished another Dopt flow.
This enables super powerful use cases:
- Connecting flows together, such as showing users an embedded tip for an advanced feature after they’ve completed a basic tour
hasflowfinished("basic-tour")
- Air-traffic control, such as targeting only those users who have finished a getting started checklist so you don’t spam users who are still onboarding:
hasflowfinished("getting-started-checklist")
Tons of new expressions

AND and OR logic
Combine multiple conditions using the AND
and OR
operators: user.properties.role == "marketing" OR user.properties.role == "sales”
Arrays
Create expressions with array data, like includes(user.properties.roles, "Marketing")
. A common use case for array-type user properties is collecting user information during setup, such as collecting what other tools a user uses, stored as ["CRM","Feature Flag","Email Automation"]
.
Strings
New string functions including contains(...)
, regexcontains(...)
, and more.
Using expressions in flow logic

In addition to targeting, all of the new expressions can be used in the True / False block to create branches. This enables you to create tailored experiences within a flow, like branching if users should see a next step because they haven’t taken an action before. For example, you could show users a dashboard feature call out if hasflowfinished("dashboard-tour") == false AND group.properties.dashboard_count == 0
How it works
- Send Dopt properties about your users and workspaces, like
role
andplan
. - Initialize the Dopt provider with your API key and user ID
- Create flows and targeting rules in Dopt
- Develop the flows in your product with Dopt’s SDKs
Learn more in our getting started guide →
Next steps
Read the docs about our new targeting features →
You can start building targeted experiences with Dopt for free by signing up →