diff --git a/apps/web/components/eventtype/AIEventController.tsx b/apps/web/components/eventtype/AIEventController.tsx
index fc4764e006..36451d101f 100644
--- a/apps/web/components/eventtype/AIEventController.tsx
+++ b/apps/web/components/eventtype/AIEventController.tsx
@@ -190,12 +190,28 @@ const AISettings = ({ eventType }: { eventType: EventTypeSetup }) => {
+
+
+
+
@@ -256,6 +287,8 @@ const EventTypePage = (props: EventTypeSetupProps) => {
enabled: eventType.aiPhoneCallConfig?.enabled,
beginMessage: eventType.aiPhoneCallConfig?.beginMessage ?? DEFAULT_BEGIN_MESSAGE,
guestName: eventType.aiPhoneCallConfig?.guestName,
+ guestEmail: eventType.aiPhoneCallConfig?.guestEmail,
+ guestCompany: eventType.aiPhoneCallConfig?.guestCompany,
yourPhoneNumber: eventType.aiPhoneCallConfig?.yourPhoneNumber,
numberToCall: eventType.aiPhoneCallConfig?.numberToCall,
},
diff --git a/apps/web/public/static/locales/en/common.json b/apps/web/public/static/locales/en/common.json
index efd4f87716..4b8c99e5b2 100644
--- a/apps/web/public/static/locales/en/common.json
+++ b/apps/web/public/static/locales/en/common.json
@@ -2256,6 +2256,8 @@
"troubleshooter": "Troubleshooter",
"number_to_call": "Number to Call",
"guest_name": "Guest Name",
+ "guest_email": "Guest Email",
+ "guest_company": "Guest Company",
"please_install_a_calendar": "Please install a calendar",
"instant_tab_title": "Instant Booking",
"instant_event_tab_description": "Let people book immediately",
diff --git a/packages/features/eventtypes/lib/types.ts b/packages/features/eventtypes/lib/types.ts
index 8363cb2230..3acb0cad2f 100644
--- a/packages/features/eventtypes/lib/types.ts
+++ b/packages/features/eventtypes/lib/types.ts
@@ -65,6 +65,8 @@ export type FormValues = {
yourPhoneNumber: string;
numberToCall: string;
guestName: string;
+ guestEmail: string;
+ guestCompany: string;
};
customInputs: CustomInputParsed[];
schedule: number | null;
diff --git a/packages/platform/sdk/src/endpoints/events/types.ts b/packages/platform/sdk/src/endpoints/events/types.ts
index ddce411966..87edf50321 100644
--- a/packages/platform/sdk/src/endpoints/events/types.ts
+++ b/packages/platform/sdk/src/endpoints/events/types.ts
@@ -53,6 +53,8 @@ export type Event = {
yourPhoneNumber: string;
numberToCall: string;
guestName: string;
+ guestEmail: string;
+ guestCompany: string;
};
schedulingType: string;
length: number;
diff --git a/packages/prisma/migrations/20240404092234_add_guest_company_and_email/migration.sql b/packages/prisma/migrations/20240404092234_add_guest_company_and_email/migration.sql
new file mode 100644
index 0000000000..273d5a512b
--- /dev/null
+++ b/packages/prisma/migrations/20240404092234_add_guest_company_and_email/migration.sql
@@ -0,0 +1,10 @@
+/*
+ Warnings:
+
+ - Added the required column `guestCompany` to the `AIPhoneCallConfiguration` table without a default value. This is not possible if the table is not empty.
+ - Added the required column `guestEmail` to the `AIPhoneCallConfiguration` table without a default value. This is not possible if the table is not empty.
+
+*/
+-- AlterTable
+ALTER TABLE "AIPhoneCallConfiguration" ADD COLUMN "guestCompany" TEXT NOT NULL,
+ADD COLUMN "guestEmail" TEXT NOT NULL;
diff --git a/packages/prisma/schema.prisma b/packages/prisma/schema.prisma
index 0dcd8a371a..dd63a2cfd0 100644
--- a/packages/prisma/schema.prisma
+++ b/packages/prisma/schema.prisma
@@ -396,7 +396,7 @@ model OrganizationSettings {
isOrganizationVerified Boolean @default(false)
orgAutoAcceptEmail String
lockEventTypeCreationForUsers Boolean @default(false)
- // It decides if instance ADMIN has reviewed the organization or not.
+ // It decides if instance ADMIN has reviewed the organization or not.
// It is used to allow super sensitive operations like 'impersonation of Org members by Org admin'
isAdminReviewed Boolean @default(false)
dSyncData DSyncData?
@@ -919,6 +919,8 @@ model AIPhoneCallConfiguration {
yourPhoneNumber String
numberToCall String
guestName String
+ guestEmail String
+ guestCompany String
enabled Boolean @default(false)
beginMessage String?
llmId String?
diff --git a/packages/prisma/zod-utils.ts b/packages/prisma/zod-utils.ts
index f69a321d01..d6b7125589 100644
--- a/packages/prisma/zod-utils.ts
+++ b/packages/prisma/zod-utils.ts
@@ -702,6 +702,12 @@ export const AIPhoneSettingSchema = z.object({
guestName: z.string().trim().min(1, {
message: "Please enter Guest Name",
}),
+ guestEmail: z.string().trim().email().min(1, {
+ message: "Please enter Guest Email",
+ }),
+ guestCompany: z.string().trim().min(1, {
+ message: "Please enter Guest Company",
+ }),
generalPrompt: z.string().trim().min(1, {
message: "Please enter prompt",
}),
diff --git a/packages/trpc/server/routers/viewer/eventTypes/types.ts b/packages/trpc/server/routers/viewer/eventTypes/types.ts
index 1244231152..4744d15949 100644
--- a/packages/trpc/server/routers/viewer/eventTypes/types.ts
+++ b/packages/trpc/server/routers/viewer/eventTypes/types.ts
@@ -16,6 +16,8 @@ export const EventTypeUpdateInput = _EventTypeModel
yourPhoneNumber: z.string().default(""),
numberToCall: z.string().default(""),
guestName: z.string().default(""),
+ guestEmail: z.string().default(""),
+ guestCompany: z.string().default(""),
})
.optional(),
calAiPhoneScript: z.string().optional(),
diff --git a/packages/trpc/server/routers/viewer/organizations/createPhoneCall.handler.ts b/packages/trpc/server/routers/viewer/organizations/createPhoneCall.handler.ts
index c011a64e63..16dd03f7e3 100644
--- a/packages/trpc/server/routers/viewer/organizations/createPhoneCall.handler.ts
+++ b/packages/trpc/server/routers/viewer/organizations/createPhoneCall.handler.ts
@@ -60,8 +60,17 @@ const createPhoneCallHandler = async ({ input, ctx }: CreatePhoneCallProps) => {
identifier: `createPhoneCall:${ctx.user.id}`,
});
- const { yourPhoneNumber, numberToCall, guestName, eventTypeId, beginMessage, generalPrompt, calApiKey } =
- input;
+ const {
+ yourPhoneNumber,
+ numberToCall,
+ guestName,
+ guestEmail,
+ guestCompany,
+ eventTypeId,
+ beginMessage,
+ generalPrompt,
+ calApiKey,
+ } = input;
const aiPhoneCallConfig = await ctx.prisma.aIPhoneCallConfiguration.upsert({
where: {
@@ -72,6 +81,8 @@ const createPhoneCallHandler = async ({ input, ctx }: CreatePhoneCallProps) => {
generalPrompt,
enabled: true,
guestName,
+ guestEmail,
+ guestCompany,
numberToCall,
yourPhoneNumber,
},
@@ -81,6 +92,8 @@ const createPhoneCallHandler = async ({ input, ctx }: CreatePhoneCallProps) => {
generalPrompt,
enabled: true,
guestName,
+ guestEmail,
+ guestCompany,
numberToCall,
yourPhoneNumber,
},
@@ -169,7 +182,7 @@ const createPhoneCallHandler = async ({ input, ctx }: CreatePhoneCallProps) => {
body: JSON.stringify({
from_number: yourPhoneNumber,
to_number: numberToCall,
- retell_llm_dynamic_variables: { name: guestName },
+ retell_llm_dynamic_variables: { name: guestName, company: guestCompany, email: guestEmail },
}),
}).then(createPhoneSchema.parse);