Skip to main content

Communication Templates

Overview

Communication templates in cidaas provide pre-structured frameworks for delivering consistent messages to users across email, SMS, IVR, and push notifications. Templates enable you to maintain brand voice and styling while automating user communications such as welcome messages, password resets, account verifications, and security alerts.

The template system includes group-specific settings for locale and language preferences, ensuring effective localized communication. You can configure communication providers within each template group to ensure seamless messaging delivery through appropriate platforms.

Key Benefits

  • Efficiency: Pre-defined templates eliminate the need to create messages from scratch for each communication
  • Brand Consistency: Ensures all communications align with your brand voice, tone, and style across teams and channels
  • Clear Structure: Provides logical frameworks that make messages easier to read and understand
  • Scalability: Useful for large teams to maintain alignment in messaging tone and content
  • Customization: Templates support dynamic elements for audience-specific messaging while retaining consistent structure
  • Multi-channel Support: Easily adapted for multiple communication channels including email, SMS, IVR, and push notifications

Template Architecture

cidaas organizes communication templates into template groups. Each template group contains multiple templates, and each template is classified by a template type. The following diagram illustrates this structure:

Built-in Template Groups

cidaas provides two built-in template groups:

  • default: Contains pre-configured communication templates for common use cases
  • developer: An empty template group for custom, non-cidaas-based communications

Developer templates

Use the developer template group for custom template types—messages that are not in cidaas’s fixed system template catalog. You identify each template by templateKey, locale, and communication method, same as other templates.

System templates vs developer templates

cidaas system templatesDeveloper templates
Template keysFixed catalog (for example WELCOME_USER, VERIFY_USER)Keys from your custom template types
Typical triggercidaas services (registration, verification, …)Your application calls the API when you choose
Template groupUsually default or a group copied from itBuilt-in group developer (groupId: developer)

Quick reference

TopicWhat to use
Groupdeveloper
Send APISend Template-Based Notifications
Criteria (identify template)templateKey, groupId (developer), commMethod, locale (as needed)
Payload (rendering)Merge system, custom, and context attributes into subject/body placeholders

How content is built

ApproachWhat you do
Placeholders in the templateDefine subject/body in Admin or API with double braces for normal substitution (for example {{given_name}}, {{orderId}}). At send time, pass attribute values in the request; they are merged and substituted.
Full HTML from the payloadUse triple braces so the value is inserted as raw HTML: for example {{{emailHtml}}}. Pass the entire HTML string as that attribute—useful when markup is generated outside the template.

Setup (summary):

  • Create a custom template type, then templates under the developer group (Template > Template, filter by developer). Configure providers for that group like any other group.
  • Step-by-step: How to Create Custom Template Types (including the developer group filter in Step 2).

Application-triggered notification flow

Your application calls the notification service directly (not via a cidaas domain service for lifecycle events). The service loads the template, renders it with your attributes, and delivers through the communication provider for that group and channel.

Customizing Communication Templates

The default template group can be customized to match your brand requirements in terms of appearance and content. You can also create custom template groups by copying the default group and customizing sender names, communication providers, layouts, and content.

Best Practices
  1. Customize the default template group to follow your corporate style guidelines
  2. Create separate template groups for brand-specific layouts and messaging requirements

Template Selection Criteria

The template selection process depends on several factors:

  1. Available Communication Channels: Which channels are available for reaching the user (email address, phone number, or cidaas Authenticator App)?
  2. Communication Purpose:
    • User verification requires secure communication channels (linked to verification procedures in cidaas)
    • Some notifications can be turned off in the Admin Portal when the template type is deactivatable; see Template activation defaults
    • Settings should be applied uniformly across all locales and template groups
  3. Client Configuration: Template groups are assigned to applications, allowing different clients to use different communication templates

Language and locale selection

Selecting a template requires a match on templateKey, locale, communicationMethod, and the app's groupId (see Template Selection Criteria). How locale is determined depends on whether cidaas triggered the notification (system templates) or your application called Send Template-Based Notifications (developer templates or explicit API sends).

cidaas system templates (Auth and requestId flows)

For notifications sent by cidaas services during login, registration, verification, and similar flows, locale is resolved in this order:

PrioritySourceExplanation
1ui_localesFrom the Authorization (Authz) request, stored with requestId and reused across the hosted-page flow for that login session. Reflects the user or client preferred languages (OIDC parameter; space-separated BCP 47 tags, for example de en). See ui_locales in the Authz API reference.
2Accept-LanguageHTTP header from the browser when ui_locales is not set.
3Locale fallback within the template groupIf no template exists for the exact tag (for example en-GB), cidaas tries the base language (en). If still no match, the template group defaultLocale is used (configured in the Admin Portal under Language and locale selection).

The requestId from Authz ties the language preference to the active authentication flow: downstream calls (hosted pages, field setup, account initiation) use the same requestId so the locale from Authz stays consistent for that session. See Authentication and hosted-page examples that pass requestId in query parameters.

A matching template must exist for the resolved locale and channel, be enabled, and be published. Disabled or draft templates are skipped (no message sent).

For a flow-specific example (VERIFY_ACCOUNT, processing types LINK/CODE), see Communication Medium Verification.

Application-triggered notifications (Send API and developer group)

When your application sends notifications (typically templates in the developer group), locale is set explicitly in the API request:

FieldBehavior
criteria.localePreferred locale for the template (for example de-DE)
criteria.defaultLocaleFallback if no published template exists for locale

This path does not use ui_locales or requestId unless you pass equivalent values in context attributes yourself.

Admin configuration

Ensure templates exist for each locale and channel you need:

  • Set Default Locale when creating a template group.
  • Add or copy locales per group under Language and locale selection.
  • Maintain separate template rows per templateKey, locale, and communication method (for example WELCOME_USER + en + email and WELCOME_USER + de + email).

Default Template Types

cidaas provides the following system template types. For the built-in default template group, English (en) and German (de) variants are pre-seeded for the channels listed below.

Template activation defaults

Two settings work together:

SettingLevelMeaning
deactivatableTemplate typeWhether you may turn off this notification in Communication Management. If No, cidaas treats the notification as required for core operations (for example password reset or account verification).
enabledTemplate row (per templateKey, locale, and channel)Whether that specific template is active. Pre-seeded defaults differ by template type.

When a cidaas service triggers a notification, a message is sent only if a matching template exists for the app's template group, locale, and channel, and that template is enabled and published. If the template is disabled or still a draft, no message is sent for that channel—there is no automatic fallback to another template.

For optional notifications (for example welcome or security alerts), you typically enable, customize, and publish the template in the Admin Portal before users receive it. Mandatory flows (for example RESET_PASSWORD, VERIFY_ACCOUNT) ship with templates enabled by default in the default group.

Enabled by default in the table below refers to email templates in the pre-seeded default group. Where the same template type is seeded with multiple channels, those channels follow the same default (disabled optional templates are off for email, SMS, IVR, and push where applicable).

System template catalog

Template KeyDescriptionDeactivatableEnabled by default (email)Communication Methods
AFTER_ACTIVATE_USERInforms users after their account has been activatedYesNoemail, sms
AFTER_CHANGE_PASSWORDNotifies users after their password has been changedYesNoemail, sms, ivr
AFTER_RESET_PASSWORDInforms users after they have successfully reset their passwordYesNoemail, sms
AFTER_DE_ACTIVATE_USERInforms users after their account has been deactivatedYesNoemail, sms, ivr, push
INVITE_USERInvites users to complete the sign-up processNoYesemail, sms
NEW_DEVICEAlerts users when a new device is detected during login or other actionsYesNoemail, sms, ivr, push
NEW_LOCATIONAlerts users when a new location is detected during login or other actionsYesNoemail, sms, ivr, push
NEW_NETWORKAlerts users when a new network is detected during login or other actionsYesemail, sms, ivr, push
NOTIFY_COMMUNICATION_CHANGENotifies users when they change their communication medium (phone number or email)YesNoemail, sms, ivr, push
OPTIN_REMINDERReminds users to opt in to the systemYesYesemail, sms
PASSWORD_RESET_BY_ADMINInforms users that their password has been reset by an administratorYesNoemail, sms, ivr, push
RESET_PASSWORDPrompts users to proceed with their requested password resetNoYesemail, sms, ivr
UN_REGISTER_USER_ALERTSends an alert when a user unregistersYesNoemail, sms
USER_CREATEDNotifies relevant parties when a user account has been createdYesNoemail, sms
USER_CREATED_VERIFYRequests newly created users to verify their email addressYesYesemail, sms
USER_MERGE_IDENTITY_ALERTAlerts users when their account has been merged with another accountYesNoemail, sms, push
USER_MERGE_VERIFY_IDENTITYRequests users to verify and confirm account merge requestsYesYesemail, sms, push
VERIFY_ACCOUNTPrompts users to verify their accountNoYesemail, sms, ivr
VERIFY_COMMUNICATION_CHANGENotifies users when they initiate a change of phone number or emailNoYesemail, sms
VERIFY_USERInitiates user verification processesNoYesemail, sms, ivr, push
WEBHOOK_FAILEDNotifies administrators about failed webhooksYesemail, sms
WELCOME_USERWelcomes users after successful sign-up and provides next stepsYesNoemail, sms
info

Note

  • Enabled by default — No: Pre-seeded templates in the default group start disabled for all seeded channels until you enable and publish them in Communication Management.
  • Enabled by default — Yes: Required for core cidaas flows; templates are pre-seeded enabled (you must still publish after editing content).
  • Enabled by default — —: Template type is available, but no pre-built rows are shipped in the default group; create or copy templates in your template group as needed.

Flow-specific guides (for example Welcome user email) describe when each template is triggered.

How to Create Custom Template Types

You can create custom communication template types tailored to your specific requirements.

Step 1: Create Template Type

  1. Log in to the cidaas Admin Dashboard
  2. Navigate to Template > Template Types
  3. Click Create Custom Types
  4. Enter the following information:
    • Template Type: Descriptive name for filtering and search operations
    • Description: Supporting description for the template type
    • Communication Methods: Select applicable communication channels (email, SMS, IVR, push)
    • Custom Attributes: Define allowed and required attributes for your template
  5. Click Create

The new template type appears in the custom template section. You can update system and custom templates by clicking on them.

Communication Template Type

Note

You can add custom fields in the registration field section to support your template attributes.

Step 2: Create and Publish Custom Template

  1. Log in to the cidaas Admin Dashboard

  2. Navigate to Template > Template

  3. Select developer from the group type dropdown filter

  4. Click the More option in the filtered list

    Communication Group Type

  5. Click Create Template

  6. Search for your template type and enter required details

    Create Custom Template

  7. Click the template to edit according to your requirements

  8. Click Publish

Additional Configuration Options

Locale Settings: Update the locale for the template group to support multiple languages.

Template Locale Configuration

Communication Provider: Configure the communication provider for the template group.

Communication Provider Configuration

In the Admin Portal, use the Template Keys, Communication Method, and Locale filters to locate specific templates quickly. For integrations and custom UIs, use the Get Template Filters by Group API described below.

Template filters API

The Get Template Filters by Group API returns the distinct filter values that exist for templates in a given template group. It is a lightweight discovery endpoint: use it to populate dropdowns, validate criteria before a send, or build admin tooling without loading every template document.

Endpoint

MethodGET
Path/notifications-srv/templategroups/{id}/templatefilters
Path parameterid — template group ID (for example default or developer)
Scopecidaas:templates_read
ReferenceGet Template Filters by Group

Response (data object)

Values are derived from templates stored for the group (aggregation over existing rows). They reflect what is configured, not the full theoretical catalog from template types.

FieldDescription
groupIdThe template group ID from the path
templateKeysDistinct templateKey values (for example WELCOME_USER, VERIFY_USER)
communicationMethodsDistinct channels present: email, sms, ivr, push, chat
localesDistinct locale codes (for example en, de)
processingTypesDistinct processing types where set: GENERAL, LINK, CODE
usageTypesDistinct usage types where set (mainly VERIFY_USER): MULTIFACTOR_AUTHENTICATION, PASSWORDLESS_AUTHENTICATION, VERIFICATION_CONFIGURATION
info

Note

  • The API does not return enabled, isDraft, or template body content. Use Find Templates Using Filters when you need full template records.
  • Templates owned by core are excluded from the aggregation; only tenant/client template rows for the group are considered.
  • If the group has no matching templates, the response is HTTP 404 with success: true and data: null.
  • The OpenAPI schema may list a numbers array; it is reserved and not populated by the current implementation.

Compared to Find Templates by Filter

Get Template Filters by GroupFind Templates by Filter
HTTPGETPOST
PurposeList allowed filter values for a groupReturn matching template documents
InputGroup ID in pathGraph filter in body (templateKey, locale, communicationMethod, …)
Typical useBuild filter UI, pre-validate criteriaRead, export, or update specific templates

Example

Request:

GET /notifications-srv/templategroups/default/templatefilters HTTP/1.1
Host: your-tenant.cidaas.de
Authorization: Bearer <access_token>

Response (excerpt):

{
"success": true,
"status": 200,
"data": {
"groupId": "default",
"templateKeys": [
"WELCOME_USER",
"VERIFY_USER",
"RESET_PASSWORD",
"AFTER_ACTIVATE_USER"
],
"communicationMethods": ["email", "sms", "ivr", "push"],
"locales": ["en", "de"],
"processingTypes": ["LINK", "CODE", "GENERAL"],
"usageTypes": [
"MULTIFACTOR_AUTHENTICATION",
"PASSWORDLESS_AUTHENTICATION",
"VERIFICATION_CONFIGURATION"
]
}
}

After you know which templateKey, locale, and communicationMethod combinations exist, call Find Templates by Filter with those criteria to load subjects, content, and enabled / isDraft flags. See Template activation defaults for which system templates are enabled by default.

How to Create Custom Template Groups

  1. Log in to the cidaas Admin Dashboard
  2. Navigate to Template > Template
  3. Click Create Group Types
  4. Enter the following information:
    • Template Group Name: Descriptive name for the group
    • Description: Supporting description for the group
    • Copy from Group: Select the template group to copy from (defaults to default)
    • Language: Choose supported languages for the template group
    • Default Locale: Select the default locale
  5. Click Create

Developer Reference

The following APIs enable programmatic management of communication templates:

APIDescriptionReference
Manage Template Groups by IDGet, update, or delete template groups using their IDView API
Create Template GroupsCreate new template groupsView API
Find Template Groups Using FiltersRetrieve template groups using filter criteriaView API
Find Templates Using FiltersRetrieve templates using filter criteriaView API
Manage TemplatesCreate, update, or delete templatesView API
Manage Templates by IDGet, update, or delete templates using their IDView API
Manage Template Types Using FiltersManage template types in a graph-based structureView API
Send Template-Based NotificationsSend notifications based on templatesView API
Create Template TypesCreate new template types with custom attributesView API
Get Notification StatusRetrieve service setup and status information for notification vendorsView API
Manage Template Type AttributesCreate or update attributes for a communication template typeView API
Get Template Filters by GroupDistinct templateKey, locale, channel, and processing/usage values for a template group (discovery for UIs and integrations)View API
::::::warning Support

Need Help?

For any further assistance, feel free to visit our Support Portal.