diff --git a/packages/app-store/routing-forms/pages/incomplete-booking/[...appPages].tsx b/packages/app-store/routing-forms/pages/incomplete-booking/[...appPages].tsx
index 557ebc8bed..cdd17b45c4 100644
--- a/packages/app-store/routing-forms/pages/incomplete-booking/[...appPages].tsx
+++ b/packages/app-store/routing-forms/pages/incomplete-booking/[...appPages].tsx
@@ -10,10 +10,10 @@ import { useLocale } from "@calcom/lib/hooks/useLocale";
import { IncompleteBookingActionType } from "@calcom/prisma/enums";
import { trpc } from "@calcom/trpc/react";
import type { inferSSRProps } from "@calcom/types/inferSSRProps";
+import { Button } from "@calcom/ui/components/button";
import { Switch } from "@calcom/ui/components/form";
import { InputField } from "@calcom/ui/components/form";
import { Select } from "@calcom/ui/components/form";
-import { Button } from "@calcom/ui/components/button";
import { showToast } from "@calcom/ui/components/toast";
import SingleForm, {
@@ -158,7 +158,7 @@ function Page({ form }: { form: RoutingFormWithResponseCount }) {
/>
-
+
@@ -380,6 +400,9 @@ const EventTypeAppCard: EventTypeAppCardComponent = function EventTypeAppCard({
...newOnBookingWriteToPersonObjectField,
fieldType: e.value,
...(e.value === SalesforceFieldType.DATE && { value: dateFieldValue.value }),
+ ...(e.value === SalesforceFieldType.CHECKBOX && {
+ value: checkboxFieldValue.value,
+ }),
});
}
}}
@@ -400,9 +423,23 @@ const EventTypeAppCard: EventTypeAppCardComponent = function EventTypeAppCard({
}
}}
/>
+ ) : writeToPersonObjectFieldType.value === SalesforceFieldType.CHECKBOX ? (
+ {
+ if (e) {
+ setCheckboxFieldValue(e);
+ setNewOnBookingWriteToPersonObjectField({
+ ...newOnBookingWriteToPersonObjectField,
+ value: e.value,
+ });
+ }
+ }}
+ />
) : (
setNewOnBookingWriteToPersonObjectField({
...newOnBookingWriteToPersonObjectField,
@@ -436,7 +473,7 @@ const EventTypeAppCard: EventTypeAppCardComponent = function EventTypeAppCard({
!(
newOnBookingWriteToPersonObjectField.field &&
newOnBookingWriteToPersonObjectField.fieldType &&
- newOnBookingWriteToPersonObjectField.value &&
+ newOnBookingWriteToPersonObjectField.value !== "" &&
newOnBookingWriteToPersonObjectField.whenToWrite
)
}
diff --git a/packages/app-store/salesforce/lib/CrmService.ts b/packages/app-store/salesforce/lib/CrmService.ts
index 3bb9732c32..d2ba2f6337 100644
--- a/packages/app-store/salesforce/lib/CrmService.ts
+++ b/packages/app-store/salesforce/lib/CrmService.ts
@@ -1059,7 +1059,6 @@ export default class SalesforceCRMService implements CRM {
// Search the fields and ensure 1. they exist 2. they're the right type
const fieldsToWriteOn = Object.keys(onBookingWriteToRecordFields);
const existingFields = await this.ensureFieldsExistOnObject(fieldsToWriteOn, personRecordType);
-
if (!existingFields.length) {
this.log.warn(`No fields found for record type ${personRecordType}`);
return;
@@ -1193,6 +1192,11 @@ export default class SalesforceCRMService implements CRM {
writeOnRecordBody[field.name] = picklistValue;
continue;
}
+ } else if (field.type === SalesforceFieldType.CHECKBOX) {
+ // If the checkbox field value is not a boolean for some reason, default to if it's a falsely value
+ const checkboxValue = !!fieldConfig.value;
+ writeOnRecordBody[field.name] = checkboxValue;
+ continue;
}
}
diff --git a/packages/app-store/salesforce/lib/enums.ts b/packages/app-store/salesforce/lib/enums.ts
index 7839e23fbd..b55c2af2a2 100644
--- a/packages/app-store/salesforce/lib/enums.ts
+++ b/packages/app-store/salesforce/lib/enums.ts
@@ -15,6 +15,7 @@ export enum SalesforceFieldType {
PHONE = "phone",
CUSTOM = "custom",
PICKLIST = "picklist",
+ CHECKBOX = "boolean",
}
export enum DateFieldTypeData {
diff --git a/packages/app-store/salesforce/zod.ts b/packages/app-store/salesforce/zod.ts
index 2354728e35..0329802db2 100644
--- a/packages/app-store/salesforce/zod.ts
+++ b/packages/app-store/salesforce/zod.ts
@@ -4,7 +4,7 @@ import { eventTypeAppCardZod } from "../eventTypeAppCardZod";
import { SalesforceRecordEnum, WhenToWriteToRecord, SalesforceFieldType } from "./lib/enums";
const writeToBookingEntry = z.object({
- value: z.string(),
+ value: z.union([z.string(), z.boolean()]),
fieldType: z.nativeEnum(SalesforceFieldType),
whenToWrite: z.nativeEnum(WhenToWriteToRecord),
});
@@ -12,7 +12,7 @@ const writeToBookingEntry = z.object({
export const writeToRecordEntrySchema = z.object({
field: z.string(),
fieldType: z.nativeEnum(SalesforceFieldType),
- value: z.string(),
+ value: z.union([z.string(), z.boolean()]),
whenToWrite: z.nativeEnum(WhenToWriteToRecord),
});