Documentation Index
Fetch the complete documentation index at: https://www.cometchat.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
A template is a reusable notification design that defines the content, delivery channels, and personalization variables for a notification. Every notification — whether sent via campaign or API — flows through a template.
Template Properties
| Field | Type | Required | Description |
|---|
name | string | Yes | Display name |
templateId | string | No (auto-generated) | Slug: cc-template-<name> (immutable) |
templateCategory | string | No | Category name (e.g., “Marketing”) |
label | string | No | Display label shown on notification (e.g., “Promo”) |
alternativeText | string | No | Plain-text fallback when rich content can’t render |
tags | string[] | No | Tags for filtering and segmentation |
status | enum | Yes | draft | approved | archived |
channels | array | Yes | Channel configurations (at least one) |
variableSchema | array | No | Variable definitions |
Content Types
| dataType | Description |
|---|
ui_template | Visual template designed in the Bubble Builder (drag-and-drop editor) |
Variables
Variables allow per-recipient personalization in notification content.
- Syntax:
{{variable_name}} in template content
- Naming: Letters, numbers, and underscores only (
^[a-zA-Z_][a-zA-Z0-9_]*$)
- Type: Selected from a dropdown with the following options:
| Type | Value Format |
|---|
string | Plain text string (e.g., "Hello World") |
image | Object: { "url": "https://...", "width": 300, "height": 200 } — all fields required |
action | Object: { "type": "web" or "custom", "data": "https://..." } — both fields required |
defaultValue is only supported for string type variables. Image and action variables do not support defaults.
- Resolution: Per-user values are passed at send time in the
variables field
Template Versioning
Templates are versioned to maintain a history of changes:
- Templates start at version 1
- Editing an approved template auto-bumps the version (creates a new snapshot)
- You can manually create a version via the “New Version” button
- Campaigns pin to a specific
templateVersion at send time
- Old versions are immutable — safe for historical reference
To access old versions via API, use Get Template — the response includes a versions array with all previous versions.
Channel Configuration
Each template has one or more channel configurations:
| Field | Type | Description |
|---|
channelType | string | in_app | push |
channelId | string | Links to a specific Channel entity |
content | object | Notification content (Bubble Builder JSON or custom) |
dataType | string | ui_template |
messageRetentionHours | number | Hours before feed item expires (0 = never) |
categoryFilterEnabled | boolean | Enable category-based filtering in feed |
templateLabelEnabled | boolean | Show label badge on notification |
Template Statuses
| Status | Description |
|---|
draft | Work in progress — cannot be used to send |
approved | Ready to use — can be selected for campaigns and notifications |
archived | Soft-deleted — hidden from lists, not usable |
Only templates with approved status can be used to send notifications. Archived templates are hidden and cannot be used.