Launch Week Day 1: Improved targeting and logic thumbnail
Product updates

Launch Week Day 1: Improved targeting and logic

Phil Vander Broek's headshotPhil Vander Broek
  • 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 with date and time expressions

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

Targeting with flow state expressions

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

Craft tons of new targeting 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

Use expressions in true / false blocks within your flow

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

  1. Send Dopt properties about your users and workspaces, like role and plan .
  2. Initialize the Dopt provider with your API key and user ID
  3. Create flows and targeting rules in Dopt
  4. 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 →