@cfxlabsinc/b2b-services
    Preparing search index...

    Module @cfxlabsinc/notification-services

    notification-services

    Common notification-services that truly do not belong to a domain. These should be very rare.

    The senders here split along who the message is for:

    The b2b customer (or their entities/users) is the audience — they're being told about their own account activity.

    • renderEmailTemplate (@cfxlabsinc/notification-services/email-render) — pure React Email rendering from a stored { statusVariant, version, subject, body } row and flattened string variables. Async (Promise<{ subject, html, text }>) because React Email 2.x render is Promise-only; await it at the composition root. Import this subpath explicitly; nothing in this package bundles React Email. Delivery to the customer runs through the event-driven email-notification-handler lambda, which resolves recipients via CustomerNotificationService.getRecipients (dashboard-auth-services) and renders with this renderer.

    Escrow texts go to a third party and use the customer's brand. Customer-team texts go to that customer's dashboard members.

    • CustomerSmsNotificationSender (src/sms/) — sends both of those SMS shapes. An escrow text uses the customer's name (for example MoveMoney: JANE DOE sent you money). Routes by destination number: US → Vibes, international → Twilio. Only sms-notification-handler builds one. It texts on escrow events and on the customer's own account events (SLACK_TEMPLATES.md §7.1). The admin dashboard reaches it for a test send through SmsNotificationHandlerClient (./clients/sms-notification-handler), a synchronous Lambda invoke.
    • SMS templates — the body is operator-editable (/sms-templates in the admin dashboard). ./sms-templates holds the client-safe registry (one entry per SmsNotification template, with a default body reproducing the copy that shipped before), validator, renderer and segment counter; ./sms-services holds SmsTemplateService, the cached read the sender injects, and SmsTemplateAdminService. A template with no live version sends its default; a DISABLED one sends nothing. See SLACK_TEMPLATES.md §7.

    The Customer prefix means the customer's SMS. Escrow texts are not account mail. Customer-team texts are the account-status channel, and they use this sender.

    clients/ses
    clients/sms-notification-handler
    clients/twilio
    clients/vibes
    dashboard-invite
    email-render
    email-services
    email-templates
    email-triggers
    format
    sms
    sms-services
    sms-templates