diff --git a/frontend/common/utils/onboardingEntry.ts b/frontend/common/utils/onboardingEntry.ts index df45626196e1..fcb6ed90c453 100644 --- a/frontend/common/utils/onboardingEntry.ts +++ b/frontend/common/utils/onboardingEntry.ts @@ -20,9 +20,13 @@ export type OnboardingEntryDecision = { * the logged-in user, and the routing it should have driven has happened. * Call `persistOnboardingEntry` with an accepted decision. */ -export async function decideOnboardingEntry(): Promise { +export async function decideOnboardingEntry( + email?: string, +): Promise { + // Only used to match segment overrides, not for bucketing. An override on + // another trait needs that trait passed here too. // @ts-expect-error transient is missing from the SDK's identify type - await flagsmith.identify('', {}, true) + await flagsmith.identify('', email ? { email } : {}, true) const flag = flagsmith.getExperimentFlag('onboarding_quickstart_flow') const identifier = flagsmith.getContext().identity?.identifier const variant: OnboardingVariant = diff --git a/frontend/web/components/App.js b/frontend/web/components/App.js index 4faaf15696a6..e1d3adb9ad1f 100644 --- a/frontend/web/components/App.js +++ b/frontend/web/components/App.js @@ -151,7 +151,9 @@ const App = class extends Component { // instead of blocking the redirect. Promise.race([ AccountStore.getUser()?.isGettingStarted - ? decideOnboardingEntry().catch(() => null) + ? decideOnboardingEntry(AccountStore.getUser()?.email).catch( + () => null, + ) : Promise.resolve(null), new Promise((resolve) => setTimeout(() => resolve(null), 2000)), ]).then((decision) => {