Skip to main content

Step block

Step block


A step block is used to represent and store the state (e.g. active: true ) and content.

A step block usually represents a single step of the experience for users, like an embedded contextual tip or a welcome modal. For example, if you wanted to create a flow for an interactive walkthrough with three steps, then the flow would likely have three step blocks; one for each step.

Every step block has a user-editable identifier and a uid. The identifier (along with the flow identifier) is the key that developers will use to access the block via SDK. Block identifiers must be unique to the flow and can only be changed while in the uncommitted version. The block uid is used when accessing blocks directly from the API or API clients.


You can get the uid of a block by clicking the more menu in the details panel for the block and then clicking the Copy UID menu item.


A step block contains the following states:

ActiveBooleanThe block has met all entry criteria so it can be shown to the user
EnteredBooleanA user has seen this block
ExitedBooleanA user has transitioned this block


A transition is used to progress to a subsequent block from a step block. The transition used determines which path(s) to follow.

Transitions are named so you can encode whatever semantics you would like. For instance, if you are using a transition to progress to the next step in a tour, you might name it next.

A transition can map to a single path or many paths depending on what your experience requires. A single path may also map to many transitions which is to say that a path can have multiple names.

Step blocks store which transition was used so it can be recalled later. This can be useful for crafting experiences that are predicated on a past transition.

Learn more about transitions →


Fields allow you to store and manage content as part of a step block. You can then pull down this content via SDK to use in your product experience. Since content is stored and managed with Dopt, you can make changes without having to update or deploy code.

Learn more →