From 104b04bdc0a385e35afb1d0d3446e53114d184e7 Mon Sep 17 00:00:00 2001 From: Harsh Bhat <90265455+harshsbhat@users.noreply.github.com> Date: Sun, 17 May 2026 23:31:59 +0530 Subject: [PATCH] chore: A/B Test - Onboarding - Skip theme step (#7957) Co-authored-by: Claude Sonnet 4.6 Co-authored-by: Johannes --- .../workspaces/new/settings/page.tsx | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/apps/web/app/(app)/(onboarding)/organizations/[organizationId]/workspaces/new/settings/page.tsx b/apps/web/app/(app)/(onboarding)/organizations/[organizationId]/workspaces/new/settings/page.tsx index e2fc01483e..e3416efde8 100644 --- a/apps/web/app/(app)/(onboarding)/organizations/[organizationId]/workspaces/new/settings/page.tsx +++ b/apps/web/app/(app)/(onboarding)/organizations/[organizationId]/workspaces/new/settings/page.tsx @@ -12,12 +12,15 @@ import { WorkspaceSettings } from "@/app/(app)/(onboarding)/organizations/[organ import { DEFAULT_BRAND_COLOR } from "@/lib/constants"; import { getPublicDomain } from "@/lib/getPublicUrl"; import { capturePostHogEvent } from "@/lib/posthog"; +import { getPostHogFeatureFlag } from "@/lib/posthog/get-feature-flag"; +import { buildStylingFromBrandColor } from "@/lib/styling/constants"; import { getUserWorkspaces } from "@/lib/workspace/service"; import { getTranslate } from "@/lingodotdev/server"; import { getAccessControlPermission } from "@/modules/ee/license-check/lib/utils"; import { getOrganizationAuth } from "@/modules/organization/lib/utils"; import { Button } from "@/modules/ui/components/button"; import { Header } from "@/modules/ui/components/header"; +import { createWorkspace } from "@/modules/workspaces/settings/lib/workspace"; interface WorkspaceSettingsPageProps { params: Promise<{ @@ -44,8 +47,29 @@ const Page = async (props: WorkspaceSettingsPageProps) => { const channel = searchParams.channel ?? null; const industry = searchParams.industry ?? null; const mode = searchParams.mode ?? "surveys"; + + const experimentVariant = + (await getPostHogFeatureFlag(session.user.id, "a-b_onboarding_skip-theme-screen")) || "control"; + const workspaces = await getUserWorkspaces(session.user.id, params.organizationId); + if (experimentVariant === "remove-theme") { + const existing = workspaces.find((w) => w.name === organization.name); + const workspace = + existing ?? + (await createWorkspace(params.organizationId, { + name: organization.name, + styling: buildStylingFromBrandColor(DEFAULT_BRAND_COLOR), + config: { channel, industry }, + })); + if (channel === "app" || channel === "website") { + return redirect(`/workspaces/${workspace.id}/connect`); + } else if (channel === "link") { + return redirect(`/workspaces/${workspace.id}/surveys`); + } + return redirect(`/workspaces/${workspace.id}/xm-templates`); + } + const organizationTeams = await getTeamsByOrganizationId(params.organizationId); const isAccessControlAllowed = await getAccessControlPermission(organization.id);