Overview
Courier Elemental provides a comprehensive set of reusable content elements that you can combine to build structured, cross-channel notification templates. Each element type serves a specific purpose and supports rich properties, conditional logic, and localization.Element Categories
Channel & Structure Elements
Elements for channel-specific customization and structure.Content Elements
Elements for displaying text, images, and interactive content.- Text - Text content with rich formatting options
- Action - Clickable buttons and links
- Image - Embedded images with optional links
- Quote - Quote blocks with styling options
- HTML - Raw HTML content
Layout Elements
Elements for organizing and structuring content.- Columns - Multi-column layouts
- Group - Group elements together for conditional logic
- List - Ordered and unordered lists with nesting support
- Divider - Visual dividers between content
Advanced Elements
Elements for advanced templating and development.- Jsonnet - Jsonnet templates for programmatic content generation
- Comment - Non-rendered comments for documentation
Quick Reference
| Element | Description | Common Use Case |
|---|---|---|
| Action | Clickable buttons and links | Call-to-action buttons, navigation links |
| Channel | Channel-specific content | Different content per email/push/SMS |
| Columns | Multi-column layouts | Side-by-side content, product grids |
| Comment | Non-rendered comments | Documentation, notes |
| Divider | Visual dividers | Separating sections |
| Group | Group elements together | Conditional blocks, loops |
| HTML | Raw HTML content | Custom HTML structures |
| Image | Embedded images | Logos, product images, illustrations |
| Jsonnet | Jsonnet templates | Programmatic JSON generation |
| List | Ordered/unordered lists | Product lists, feature lists |
| Meta | Metadata (titles, subjects) | Email subjects, push titles |
| Quote | Quote blocks | Testimonials, highlighted text |
| Text | Text content | Body text, headings, descriptions |
Common Patterns
Control Flow
All elements support control flow properties:if- Conditional renderingloop- Repeat elementsref- Reference elements
Localization
Many elements support thelocales property for multi-language content:
content- Localized text contenttitle- Localized titles (meta element)href- Localized URLs (action, image elements)
Getting Started
- Start with the basics: Use Text and Action elements for simple notifications
- Add structure: Use Group and Columns for complex layouts
- Customize per channel: Use Channel elements for channel-specific content
- Add interactivity: Use Action elements for buttons and links