diff --git a/website/src/app/pricing/_page.tsx b/website/src/app/pricing/_page.tsx index 1056b279e..a2babece0 100644 --- a/website/src/app/pricing/_page.tsx +++ b/website/src/app/pricing/_page.tsx @@ -139,12 +139,12 @@ export default function _Page() {
- +
diff --git a/website/src/app/pricing/plan_table.tsx b/website/src/app/pricing/plan_table.tsx index 3ebf1ecfa..0fc02a5f0 100644 --- a/website/src/app/pricing/plan_table.tsx +++ b/website/src/app/pricing/plan_table.tsx @@ -993,12 +993,12 @@ export default function PlanTable() { - + diff --git a/website/src/components/Providers/index.jsx b/website/src/components/Providers/index.jsx index 3d2798f4d..9231d5b65 100644 --- a/website/src/components/Providers/index.jsx +++ b/website/src/components/Providers/index.jsx @@ -3,11 +3,11 @@ import { MixpanelProvider } from "react-mixpanel-browser"; import { HubspotProvider } from "next-hubspot"; export default function Provider({ children }) { - const token = "b0ab1d66424a27555ed45a27a4fd0cd2"; + const token = process.env.NODE_ENV == "development" ? "313bdddc66b911f4afeb2c3242a78113" : "b0ab1d66424a27555ed45a27a4fd0cd2"; const host = "https://t.firez.one"; return ( - + {children} ); diff --git a/website/src/components/RootLayout/index.tsx b/website/src/components/RootLayout/index.tsx index eb672bf45..6f99e5c89 100644 --- a/website/src/components/RootLayout/index.tsx +++ b/website/src/components/RootLayout/index.tsx @@ -23,6 +23,17 @@ export const metadata: Metadata = { description: "Open-source, zero-trust access platform built on WireGuard®", }; +interface HubSpotSubmittedFormData { + type: string; + eventName: string; + redirectUrl: string; + conversionId: string; + formGuid: string; + submissionValues: { + [key: string]: string; + }; +} + function Mixpanel() { const pathname = usePathname(); const searchParams = useSearchParams(); @@ -39,6 +50,35 @@ function Mixpanel() { mixpanel.track("$mp_web_page_view", { $current_url: url, }); + + const handleMessage = (event: MessageEvent) => { + if (event.data.type === 'hsFormCallback' && event.data.eventName === 'onFormSubmitted') { + const formData: HubSpotSubmittedFormData = event.data.data; + if (!formData || !formData.formGuid || !formData.submissionValues) { + console.error("Missing form data:", formData); + return; + } + + if (formData.submissionValues.email && formData.submissionValues.firstname && formData.submissionValues.lastname) { + mixpanel.people.set({ + $email: formData.submissionValues.email, + $first_name: formData.submissionValues.firstname, + $last_name: formData.submissionValues.lastname + }); + + mixpanel.track("HubSpot Form Submitted", { + formId: formData.formGuid, + conversionId: formData.conversionId, + }); + } + } + }; + + window.addEventListener('message', handleMessage); + + return () => { + window.removeEventListener('message', handleMessage); + }; }, [pathname, searchParams, mixpanel]); return null;