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;