Creating a Multi-Step Onboarding with Engage
A warm welcome is key to building a long-term relationship with new subscribers and improving a crucial aspect: retention.
Providing a multi-step onboarding process right after payment confirmation is an effective way to guide readers smoothly through their first interactions.
This article presents an example of a three-step onboarding process and one way (among others) to implement it using the Engage SDK.
Example of a Multi-Step Onboarding
The following use case is designed to trigger right after a subscription confirmation, on a dedicated onboarding page. Here are the different steps:
Step 1: Choosing a Newsletter Subscription
In this step, we propose several blocks, each allowing the new subscriber to sign up for a specific newsletter. A button is included to proceed to the next step.
💡 Use the flexibility of the click event to register users for a specific newsletter upon selection.
The Telegraph
Implementation on the Engage Dashboard:
- Set the display condition of the element to "Based on a custom filter", using a unique value such as
Step1. - Use clickable image components for each newsletter option.
- Set the click action to "Trigger an event" for each selection.
- Define a JavaScript event name, which will be handled in the integration logic to process the subscription.
- Use a button component with the action "Trigger an event" to proceed to the next step.
- Define an event name, e.g.,
Step1-completed.
Step 2: Download the Mobile App
For new subscribers browsing on a desktop device, we display a QR code that they can scan to download the publisher’s mobile app.
To proceed to the next step, we use the same approach as in Step 1: a button to trigger the next interaction.
The Economist
Implementation on the Engage Dashboard:
- Set the display condition to "Based on a custom filter", using the event name from the previous step (e.g.,
Step1-completed). - Use a button component with the action "Trigger an event" to proceed to the next step.
- Define an event name, e.g.,
Step2-completed.
Step 3: Completing Personal Information
At this stage, we aim to enhance the subscriber’s personalized experience while completing the onboarding process.
A form is displayed to collect essential user information. The formSubmit event processes and stores the submitted data.
Le Parisien
Implementation on the Engage Dashboard:
- Set the slug of the element (e.g.,
"onboarding-step-3"). - Set the display condition to "Based on a custom filter", using the event name from the previous step (e.g.,
Step2-completed). - Use a button component with the action "Submit form" to process the data.
Technical Implementation with the Engage SDK
This example follows the logic below:
- On each page load, the appropriate Engage element is displayed, corresponding to Step 1, 2, or 3.
- The user is assigned to the correct step using the browser's Local Storage.
- The right Engage element is loaded by applying a custom filter via
.autoCreate({ filters: });.
💡 While this is a functional integration method, it may not suit every use case. Feel free to explore other approaches or contact our support team for validation.
Engage.init("<your-app-id>")
.on("click", ({ name }) => {
// Store onboarding progress in localStorage
localStorage.setItem("onboardingStep", name);
// Reload the page to display the next step
window.location.reload();
})
.on("formSubmit", ({ element }) => {
if (element.slug === 'onboarding-step-3') {
localStorage.setItem("onboardingStep", 'Step3-completed');
// Reload the page for the next step (or redirect as needed)
window.location.reload();
}
})
.autoCreate({
// Retrieve the last completed step and apply it as a filter.
// If no step is completed, default to Step 1.
filters: localStorage.getItem("onboardingStep") || "Step1",
});
If you have any questions or need assistance, feel free to reach out via live chat or email 😊
Updated on: 12/03/2026
Thank you!



