From 669065cebd1055a622445e1db0457a0bc7326670 Mon Sep 17 00:00:00 2001 From: Monto <138862352+monto7926@users.noreply.github.com> Date: Thu, 3 Aug 2023 18:10:59 +0300 Subject: [PATCH] feat: add attendee first name and last name tokens to workflows (#10509) --- apps/web/public/static/locales/en/common.json | 4 ++++ packages/features/bookings/lib/handleNewBooking.ts | 4 ++++ packages/features/ee/workflows/lib/constants.ts | 2 ++ .../workflows/lib/reminders/emailReminderManager.ts | 2 ++ .../ee/workflows/lib/reminders/smsReminderManager.ts | 11 ++++++++++- .../lib/reminders/templates/customTemplate.ts | 4 ++++ 6 files changed, 26 insertions(+), 1 deletion(-) diff --git a/apps/web/public/static/locales/en/common.json b/apps/web/public/static/locales/en/common.json index 4d5402ac18..cf190582f4 100644 --- a/apps/web/public/static/locales/en/common.json +++ b/apps/web/public/static/locales/en/common.json @@ -1976,5 +1976,9 @@ "org_admin_other_teams_description": "Here you can see teams inside your organization but that you are not part of. You can add yourself to them if needed.", "no_other_teams_found": "No other teams found", "no_other_teams_found_description": "There are no other teams in this organization.", + "attendee_first_name_variable": "Attendee first name", + "attendee_last_name_variable": "Attendee last name", + "attendee_first_name_info": "The person booking's first name", + "attendee_last_name_info": "The person booking's last name", "ADD_NEW_STRINGS_ABOVE_THIS_LINE_TO_PREVENT_MERGE_CONFLICTS": "↑↑↑↑↑↑↑↑↑↑↑↑↑ Add your new strings above here ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑" } diff --git a/packages/features/bookings/lib/handleNewBooking.ts b/packages/features/bookings/lib/handleNewBooking.ts index 27121138c4..5404f30956 100644 --- a/packages/features/bookings/lib/handleNewBooking.ts +++ b/packages/features/bookings/lib/handleNewBooking.ts @@ -866,6 +866,8 @@ async function handler( { email: bookerEmail, name: fullName, + firstName: (typeof bookerName === "object" && bookerName.firstName) || "", + lastName: (typeof bookerName === "object" && bookerName.lastName) || "", timeZone: reqBody.timeZone, language: { translate: tAttendees, locale: language ?? "en" }, }, @@ -879,6 +881,8 @@ async function handler( guestArray.push({ email: guest, name: "", + firstName: "", + lastName: "", timeZone: reqBody.timeZone, language: { translate: tGuests, locale: "en" }, }); diff --git a/packages/features/ee/workflows/lib/constants.ts b/packages/features/ee/workflows/lib/constants.ts index fee5c45549..618cc6fd52 100644 --- a/packages/features/ee/workflows/lib/constants.ts +++ b/packages/features/ee/workflows/lib/constants.ts @@ -46,6 +46,8 @@ export const DYNAMIC_TEXT_VARIABLES = [ "location", "organizer_name", "attendee_name", + "attendee_first_name", + "attendee_last_name", "attendee_email", "additional_notes", "meeting_url", diff --git a/packages/features/ee/workflows/lib/reminders/emailReminderManager.ts b/packages/features/ee/workflows/lib/reminders/emailReminderManager.ts index e60746429c..13848ca866 100644 --- a/packages/features/ee/workflows/lib/reminders/emailReminderManager.ts +++ b/packages/features/ee/workflows/lib/reminders/emailReminderManager.ts @@ -105,6 +105,8 @@ export const scheduleEmailReminder = async ( eventName: evt.title || "", organizerName: evt.organizer.name, attendeeName: evt.attendees[0].name, + attendeeFirstName: evt.attendees[0].firstName, + attendeeLastName: evt.attendees[0].lastName, attendeeEmail: evt.attendees[0].email, eventDate: dayjs(startTime).tz(timeZone), eventEndTime: dayjs(endTime).tz(timeZone), diff --git a/packages/features/ee/workflows/lib/reminders/smsReminderManager.ts b/packages/features/ee/workflows/lib/reminders/smsReminderManager.ts index 2b7944b6fc..157e3cdc64 100644 --- a/packages/features/ee/workflows/lib/reminders/smsReminderManager.ts +++ b/packages/features/ee/workflows/lib/reminders/smsReminderManager.ts @@ -24,7 +24,14 @@ const log = logger.getChildLogger({ prefix: ["[smsReminderManager]"] }); export type BookingInfo = { uid?: string | null; - attendees: { name: string; email: string; timeZone: string; language: { locale: string } }[]; + attendees: { + name: string; + firstName?: string; + lastName?: string; + email: string; + timeZone: string; + language: { locale: string }; + }[]; organizer: { language: { locale: string }; name: string; @@ -107,6 +114,8 @@ export const scheduleSMSReminder = async ( eventName: evt.title, organizerName: evt.organizer.name, attendeeName: evt.attendees[0].name, + attendeeFirstName: evt.attendees[0].firstName, + attendeeLastName: evt.attendees[0].lastName, attendeeEmail: evt.attendees[0].email, eventDate: dayjs(evt.startTime).tz(timeZone), eventEndTime: dayjs(evt.endTime).tz(timeZone), diff --git a/packages/features/ee/workflows/lib/reminders/templates/customTemplate.ts b/packages/features/ee/workflows/lib/reminders/templates/customTemplate.ts index 43e388a619..d925b01b59 100644 --- a/packages/features/ee/workflows/lib/reminders/templates/customTemplate.ts +++ b/packages/features/ee/workflows/lib/reminders/templates/customTemplate.ts @@ -9,6 +9,8 @@ export type VariablesType = { eventName?: string; organizerName?: string; attendeeName?: string; + attendeeFirstName?: string; + attendeeLastName?: string; attendeeEmail?: string; eventDate?: Dayjs; eventEndTime?: Dayjs; @@ -52,6 +54,8 @@ const customTemplate = ( .replaceAll("{ATTENDEE}", variables.attendeeName || "") .replaceAll("{ORGANIZER_NAME}", variables.organizerName || "") //old variable names .replaceAll("{ATTENDEE_NAME}", variables.attendeeName || "") //old variable names + .replaceAll("{ATTENDEE_FIRST_NAME}", variables.attendeeFirstName || "") + .replaceAll("{ATTENDEE_LAST_NAME}", variables.attendeeLastName || "") .replaceAll("{EVENT_DATE}", translatedDate) .replaceAll("{EVENT_TIME}", variables.eventDate?.format(currentTimeFormat) || "") .replaceAll("{START_TIME}", variables.eventDate?.format(currentTimeFormat) || "")