feat: send organization_id to intercom (#14811)

* send organization_id to intercom

* send org slug instead of org id

* fix: type errors

---------

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
This commit is contained in:
Somay Chauhan
2024-04-30 21:38:18 +00:00
committed by GitHub
co-authored by Peer Richelsen
parent a18f1eb382
commit ef98105503
3 changed files with 20 additions and 9 deletions
@@ -5,7 +5,6 @@ import { z } from "zod";
import dayjs from "@calcom/dayjs";
import { WEBAPP_URL, WEBSITE_URL } from "@calcom/lib/constants";
import hasKeyInMetadata from "@calcom/lib/hasKeyInMetadata";
import { useHasTeamPlan, useHasPaidPlan } from "@calcom/lib/hooks/useHasPaidPlan";
import { trpc } from "@calcom/trpc/react";
@@ -57,13 +56,14 @@ export const useIntercom = () => {
metadata: data?.metadata,
completed_onboarding: data.completedOnboarding,
is_logged_in: !!data,
sum_of_bookings: data.sumOfBookings,
sum_of_calendars: data.sumOfCalendars,
sum_of_teams: data.sumOfTeams,
has_org: !data.organizationId,
sum_of_event_types: data.sumOfEventTypes,
sum_of_team_event_types: data.sumOfTeamEventTypes,
is_premium: hasKeyInMetadata(data, "isPremium") ? !!data.metadata.isPremium : false,
sum_of_bookings: data?.sumOfBookings,
sum_of_calendars: data?.sumOfCalendars,
sum_of_teams: data?.sumOfTeams,
has_org: !data?.organizationId,
organization: data?.organization?.slug,
sum_of_event_types: data?.sumOfEventTypes,
sum_of_team_event_types: data?.sumOfTeamEventTypes,
is_premium: data?.isPremium,
},
});
};
@@ -96,6 +96,14 @@ export const useIntercom = () => {
metadata: data?.metadata,
completed_onboarding: data?.completedOnboarding,
is_logged_in: !!data,
sum_of_bookings: data?.sumOfBookings,
sum_of_calendars: data?.sumOfCalendars,
sum_of_teams: data?.sumOfTeams,
has_org: !data?.organizationId,
organization: data?.organization?.slug,
sum_of_event_types: data?.sumOfEventTypes,
sum_of_team_event_types: data?.sumOfTeamEventTypes,
is_premium: data?.isPremium,
},
});
hookData.show();
@@ -45,7 +45,7 @@ export default function WorkflowDetailsPage(props: Props) {
const { data, isPending } = trpc.viewer.eventTypes.getByViewer.useQuery();
const searchParams = useSearchParams();
const eventTypeId = searchParams.get("eventTypeId");
const eventTypeId = searchParams?.get("eventTypeId");
const eventTypeOptions = useMemo(
() =>
@@ -5,6 +5,7 @@ import { ProfileRepository } from "@calcom/lib/server/repository/profile";
import { UserRepository } from "@calcom/lib/server/repository/user";
import prisma from "@calcom/prisma";
import { IdentityProvider } from "@calcom/prisma/enums";
import { userMetadata } from "@calcom/prisma/zod-utils";
import type { TrpcSessionUser } from "@calcom/trpc/server/trpc";
import type { TMeInputSchema } from "./me.schema";
@@ -101,6 +102,7 @@ export const meHandler = async ({ ctx, input }: MeOptions) => {
sumOfTeamEventTypes++;
}
}
const userMetadataPrased = userMetadata.parse(user.metadata);
// Destructuring here only makes it more illegible
// pick only the part we want to expose in the API
@@ -148,6 +150,7 @@ export const meHandler = async ({ ctx, input }: MeOptions) => {
sumOfCalendars: additionalUserInfo?.selectedCalendars.length,
sumOfTeams: additionalUserInfo?.teams.length,
sumOfEventTypes: additionalUserInfo?.eventTypes.length,
isPremium: userMetadataPrased?.isPremium,
sumOfTeamEventTypes,
...(passwordAdded ? { passwordAdded } : {}),
};