From 0b977e615dc8de78b177eda6049755aa98201ced Mon Sep 17 00:00:00 2001 From: Anik Dhabal Babu <81948346+anikdhabal@users.noreply.github.com> Date: Mon, 30 Jun 2025 13:47:36 +0530 Subject: [PATCH] fix: exclude opt out message from body (#22100) * fix: exclude opt out * Update packages/features/ee/workflows/api/scheduleSMSReminders.ts Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --------- Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- packages/features/ee/workflows/api/scheduleSMSReminders.ts | 3 +++ .../ee/workflows/lib/reminders/messageDispatcher.ts | 6 ++++-- .../ee/workflows/lib/reminders/smsReminderManager.ts | 3 +++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/features/ee/workflows/api/scheduleSMSReminders.ts b/packages/features/ee/workflows/api/scheduleSMSReminders.ts index 92ef9b3913..a399f94ee9 100644 --- a/packages/features/ee/workflows/api/scheduleSMSReminders.ts +++ b/packages/features/ee/workflows/api/scheduleSMSReminders.ts @@ -157,6 +157,8 @@ export async function handler(req: NextRequest) { } if (message?.length && message?.length > 0 && sendTo) { + const smsMessageWithoutOptOut = message; + if (process.env.TWILIO_OPT_OUT_ENABLED === "true") { message = await WorkflowOptOutService.addOptOutMessage(message, locale || "en"); } @@ -167,6 +169,7 @@ export async function handler(req: NextRequest) { body: message, scheduledDate: reminder.scheduledDate, sender: senderID, + bodyWithoutOptOut: smsMessageWithoutOptOut, bookingUid: reminder.booking.uid, userId, teamId, diff --git a/packages/features/ee/workflows/lib/reminders/messageDispatcher.ts b/packages/features/ee/workflows/lib/reminders/messageDispatcher.ts index f9b03d20f1..086d8d92b7 100644 --- a/packages/features/ee/workflows/lib/reminders/messageDispatcher.ts +++ b/packages/features/ee/workflows/lib/reminders/messageDispatcher.ts @@ -14,6 +14,7 @@ export async function sendSmsOrFallbackEmail(props: { phoneNumber: string; body: string; sender: string; + bodyWithoutOptOut?: string; bookingUid?: string | null; userId?: number | null; teamId?: number | null; @@ -40,7 +41,7 @@ export async function sendSmsOrFallbackEmail(props: { await sendOrScheduleWorkflowEmails({ to: [fallbackData.email], subject: fallbackData.t("notification_about_your_booking"), - html: twilioData.body, + html: twilioData.bodyWithoutOptOut || twilioData.body, replyTo: fallbackData.replyTo, }); } @@ -60,6 +61,7 @@ export async function scheduleSmsOrFallbackEmail(props: { body: string; scheduledDate: Date; sender: string; + bodyWithoutOptOut?: string; bookingUid?: string | null; userId?: number | null; teamId?: number | null; @@ -96,7 +98,7 @@ export async function scheduleSmsOrFallbackEmail(props: { await sendOrScheduleWorkflowEmails({ to: [fallbackData.email], subject: fallbackData.t("notification_about_your_booking"), - html: twilioData.body, + html: twilioData.bodyWithoutOptOut || twilioData.body, replyTo: fallbackData.replyTo, sendAt: twilioData.scheduledDate, referenceUid: reminder.uuid || undefined, diff --git a/packages/features/ee/workflows/lib/reminders/smsReminderManager.ts b/packages/features/ee/workflows/lib/reminders/smsReminderManager.ts index a3dafee1ed..ab88af55ed 100644 --- a/packages/features/ee/workflows/lib/reminders/smsReminderManager.ts +++ b/packages/features/ee/workflows/lib/reminders/smsReminderManager.ts @@ -176,6 +176,8 @@ export const scheduleSMSReminder = async (args: ScheduleTextReminderArgs) => { } if (smsMessage.length > 0) { + const smsMessageWithoutOptOut = smsMessage; + if (process.env.TWILIO_OPT_OUT_ENABLED === "true") { smsMessage = await WorkflowOptOutService.addOptOutMessage( smsMessage, @@ -196,6 +198,7 @@ export const scheduleSMSReminder = async (args: ScheduleTextReminderArgs) => { phoneNumber: reminderPhone, body: smsMessage, sender: senderID, + bodyWithoutOptOut: smsMessageWithoutOptOut, bookingUid: evt.uid, userId, teamId,