diff --git a/apps/web/app/api/v1/client/responses/route.ts b/apps/web/app/api/v1/client/responses/route.ts index fac01954e7..152c496e76 100644 --- a/apps/web/app/api/v1/client/responses/route.ts +++ b/apps/web/app/api/v1/client/responses/route.ts @@ -45,6 +45,7 @@ export async function POST(request: Request): Promise { let response: TResponse; try { const meta = { + url: responseInput?.meta?.url ?? "", userAgent: { browser: agent?.browser.name, device: agent?.device.type, diff --git a/apps/web/lib/linkSurvey/linkSurvey.ts b/apps/web/lib/linkSurvey/linkSurvey.ts index 6569eea2dd..5e7bafef7e 100644 --- a/apps/web/lib/linkSurvey/linkSurvey.ts +++ b/apps/web/lib/linkSurvey/linkSurvey.ts @@ -108,6 +108,9 @@ export const useLinkSurveyUtils = (survey: Survey) => { personId: personId, finished, data, + meta: { + url: window.location.href, + }, }; if (!responseId && !isPreview) { const response = await createResponse( diff --git a/packages/js/src/components/SurveyView.tsx b/packages/js/src/components/SurveyView.tsx index 92404e81a2..88028b7caf 100644 --- a/packages/js/src/components/SurveyView.tsx +++ b/packages/js/src/components/SurveyView.tsx @@ -187,6 +187,9 @@ export default function SurveyView({ config, survey, close, errorHandler }: Surv personId: config.state.person.id, finished, data, + meta: { + url: window.location.href, + }, }; if (!responseId) { const [response, _] = await Promise.all([ diff --git a/packages/types/v1/responses.ts b/packages/types/v1/responses.ts index d62c10bada..3d2e2bc428 100644 --- a/packages/types/v1/responses.ts +++ b/packages/types/v1/responses.ts @@ -28,6 +28,7 @@ const ZResponseNote = z.object({ export type TResponseNote = z.infer; export const ZResponseMeta = z.object({ + url: z.string(), userAgent: z.object({ browser: z.string().optional(), os: z.string().optional(), @@ -67,6 +68,7 @@ export const ZResponseInput = z.object({ data: ZResponseData, meta: z .object({ + url: z.string().optional(), userAgent: z .object({ browser: z.string().optional(),