M06

Notify Templates

Versioned, translatable templates for SMS, email, and push channels.

Admin template management with clone, restore, history, preview-send, phrase translation, merge-field dependency analysis, and editor preview generation.

NotificationSettings.jsxtsx
import { Switch, Select, Checkbox, Notification } from '@cleen/cleen-components';
import { useNotifySettings } from '@/hooks/useNotifySettings';

export function NotificationSettings() {
  const { groups, toggle, setChannel } = useNotifySettings();

  return (
    <div className="notify-settings">
      {groups.map((g) => (
        <section key={g.id}>
          <h2>{g.name}</h2>
          {g.types.map((t) => (
            <div key={t.id} className="notify-row">
              <Switch checked={t.enabled} onChange={(v) => toggle(t.id, v)}>{t.label}</Switch>
              <Select
                value={t.channel}
                onChange={(v) => setChannel(t.id, v)}
                options={[
                  { value: 'email', label: 'Email' },
                  { value: 'push',  label: 'Push' },
                  { value: 'sms',   label: 'SMS' },
                ]}
              />
            </div>
          ))}
        </section>
      ))}
      <Notification tone="info">Changes save automatically.</Notification>
    </div>
  );
}

Capabilities

  • Notify template save/clone/delete/filter/detail
  • Preview send and editor preview
  • Template history and restore
  • Phrase translation and re-translation
  • Merge field management and dependency retrieval

Benefits

  • Faster cross-channel messaging launches
  • Lower risk with version history and restore
  • Better localization quality

Flow of work

  1. 01Create or clone template
  2. 02Add channel content and merge fields
  3. 03Preview and test send
  4. 04Publish by event trigger
  5. 05Iterate via history and restore

Subfeatures

  • Template save
  • Template clone
  • Template delete
  • Template filter
  • Template by ID
  • Preview send
  • Editor preview
  • Template history
  • Template restore
  • Phrase translation
  • Merge field save/delete
Source surfaces (technical reference)

Internal code areas in the licensed Full-Stack codebase that back this module.

  • ApiAdmin notify template endpoints
  • Notify template phrase translation endpoints
  • ApiPushNotification send endpoint
In the stack

Where it lives. What it exposes.

A quick visual of how Notify Templates participates across the CleenUI stack, alongside the named operations it adds to the API surface.

M06 · architecture
Frontend
React · TailwindCSS · 60+ components
Template editorPreview paneTranslation editorHistory viewerSend tester
API
C# Web API · production-ready · role-aware
Template CRUDPreview sendHistory/restorePhrase translationMerge fields
Database
AzureSQL · 300+ tables · 700+ procedures
NotifyTemplatesPhrasesTemplateVersionsMergeFields
Async Services and Batch Jobs
WebJobs & Functions · queue-backed
Notification senderTemplate rendererPhrase translator
All four layers ship together as the Full-Stack license. M06 blocks are highlighted.
API operations

Named operations on this surface

11
Try these in Postman
  • POSTTemplate save/admin/notify-template/save
  • POSTTemplate clone/admin/notify-template/clone
  • POSTTemplate delete/admin/notify-template/delete
  • POSTTemplate filter/admin/notify-template/filter
  • POSTTemplate by ID/admin/notify-template/by-id
  • POSTPreview send/admin/notify-template/preview-send
  • POSTEditor preview/admin/notify-template/editor-preview
  • POSTTemplate history/admin/notify-template/history
  • POSTTemplate restore/admin/notify-template/restore
  • POSTPhrase translation/admin/notify-template/phrase-translation
  • POSTMerge field save/delete/admin/notify-template/merge-field-save-delete

Each operation maps to an endpoint in the licensed C# Web API surface.