Start flows via SDKs and APIs
You can now programmatically start flows via SDKs and APIs. We’ve exposed our flow
start intent in our SDKs and APIs and you can now pass an optional
force=true parameter which will forcefully start a flow for a given user despite any targeting conditions. This enables you to build experiences like starting a product tour when a user clicks a button or starting a flow by listening to events in your product (including on the backend). We’ve also updated our
reset intent to accept the same parameter, allowing you to forcefully enter a user when they are reset as well. Read docs →
As a part of this work improved the usability of our targeting settings. We made the targeting options more explicit, so you now select if you’d like to target all users, target with an expression, or start via API / SDK only. We also show the setting on the start block. Read docs →
Updated JS and Node blocks API client libraries
We released two new client libraries for our blocks API.
These client libraries are thin language-specific abstractions on top of our Blocks API, allowing you to access and update blocks and flows easily. We've shifted to a different technology for generating the clients and updated the spec in the process, resulting in a few nice updates.
React component updates
We’ve migrated our React components to use vanilla-extract, a zero-runtime styling library. This resulted in smaller bundle sizes as well as improved performance as styles are no longer compiled at runtime.
This is a breaking change, so please have a look at our migration steps for more info. In short, the
createTheme API has changed a bit and now requires strict adherence to the theme interface and we’ve changed the way styles are bundled so your bundler will need to be aware of how to handle CSS imports. The CSS variable interface remains the same.
We’ve also created separate exports for our component hooks for cases where you’d like to use our components in a headless fashion. These exports can be accessed from any component via
@dopt/react-*/hooks. In the case of the modal component, you would import
@dopt/react-modal/hooks. Using the hooks-only export will not include any of the component or theme CSS.
Duplicate flow and block
We’ve added the ability to duplicate flows and blocks! These features make it easy to reuse existing flows and blocks for new use cases. You could also use a flow as a lightweight template.
- Added the ability to copy flow ID from the flow listing page
- Improved the usability of drag and drop of fields in the flow view
- Made block names more readable on the flow canvas