Dear {{customerName}},
Your job {{jobNumber}} is complete. Final price: {{finalPrice}}. It is now ready for pickup.
Thank you for choosing {{companyName}}.
" ), + [(NotificationType.QuoteSent, NotificationChannel.Sms)] = ( + null, + "{{companyName}}: Quote {{quoteNumber}} for {{quoteTotal}} is ready for your review. Approve or decline: {{approvalUrl}} Reply STOP to opt out." + ), [(NotificationType.JobCompleted, NotificationChannel.Sms)] = ( null, "{{companyName}}: Job {{jobNumber}} is done and ready for pickup! Reply STOP to opt out." ), [(NotificationType.SmsConsentConfirmation, NotificationChannel.Sms)] = ( null, - "{{companyName}}: You're now enrolled for SMS job & pickup updates. Reply STOP at any time to opt out. Msg & data rates may apply." + "{{companyName}}: You're now enrolled for SMS job updates and quote approvals. Reply STOP at any time to opt out. Msg & data rates may apply." ), [(NotificationType.InvoiceSent, NotificationChannel.Email)] = ( "Invoice {{invoiceNumber}} from {{companyName}}", diff --git a/src/PowderCoating.Web/Helpers/HelpKnowledgeBase.cs b/src/PowderCoating.Web/Helpers/HelpKnowledgeBase.cs index 9b2da45..bd59514 100644 --- a/src/PowderCoating.Web/Helpers/HelpKnowledgeBase.cs +++ b/src/PowderCoating.Web/Helpers/HelpKnowledgeBase.cs @@ -1062,6 +1062,7 @@ public static class HelpKnowledgeBase - Quote approved/rejected by customer - Job status changes - Job completed (email + SMS) + - Quote sent (SMS — approval link) - Invoice sent - Payment received - Overdue payment reminders @@ -1082,8 +1083,10 @@ public static class HelpKnowledgeBase On each customer's record (Edit Customer), check the **SMS Opt-In** box and enter a **Mobile Phone** number. A customer will not receive SMS messages unless both boxes are set. You are responsible for obtaining the customer's verbal or written consent before enabling this. **What events send an SMS:** + - Quote sent — sends the customer a link to review and approve or decline their quote. - Job completed — notifies the customer their job is done and ready for pickup. - - Quote approval request — sends the customer a link to review and approve or decline their quote. + + Both SMS templates are customizable at Company Settings → Notification Templates. Companies can change the wording of both the quote SMS and the job-completed SMS to match their voice. **Sending a quote approval link via SMS:** On any quote's Details page, click **Send Quote via SMS**. The system texts the customer's mobile number a short message with the approval link. If no valid approval token exists yet, one is generated automatically. If an email was already sent for the same quote, the existing token is reused so both the email link and the SMS link remain valid simultaneously. The customer follows the link to the self-service approval portal and can approve or decline from their phone. Prospects (non-customers) receive the SMS at their ProspectPhone number without requiring an opt-in check; registered customers must have SMS Opt-In enabled. diff --git a/src/PowderCoating.Web/Views/Help/Settings.cshtml b/src/PowderCoating.Web/Views/Help/Settings.cshtml index 56cfee2..7e95c56 100644 --- a/src/PowderCoating.Web/Views/Help/Settings.cshtml +++ b/src/PowderCoating.Web/Views/Help/Settings.cshtml @@ -392,14 +392,18 @@+ Both SMS message templates can be customised at + Company Settings › Notification Templates. +
When a Company Admin or Manager marks a job complete, the system pre-fills a draft