Templates
Creating and managing email templates in CeramicCRM.
Email Templates
CeramicCRM provides a full-featured template editor for building email templates:
- Visual Block Editor — Build emails with drag-and-drop content blocks
- HTML/Jinja Editor — Write raw HTML with Jinja2 template syntax for dynamic content
- Saved Blocks — Reuse content blocks across templates
- Preview & Variables — Preview templates with sample profile data
- Template Management — Create, edit, duplicate, and organize templates
Style Presets
Style presets define reusable brand styling for email templates — colors, typography, buttons, and spacing. Apply a preset to a template, and its styles are injected as CSS when previewing and sending.
Applying a Preset
In the template editor toolbar, click the Style Preset button (palette icon). A popover opens with two modes:
- Static mode (default) — Select a preset from the dropdown. The preset's styles apply immediately in the visual editor.
- Conditional mode — Click Conditional to switch to an expression editor. Write a Jinja expression that evaluates to a preset ID based on recipient data. For example:
{% if domain == 'SC' %}5{% elif domain == 'OTHER' %}3{% else %}1{% endif %}This allows different recipients to receive differently-styled emails from the same template.
How Styles Apply
- Preset styles are injected as a
<style>block inside the email's<body> - Element selectors (
h1,p,a) provide base styling at low CSS specificity - Any manual formatting you apply to individual blocks (bold, color, font size) takes precedence over the preset
- Button styles use class selectors (
.btn-primary,.btn-secondary,.btn-outline)
Default Preset
The workspace's default preset is automatically applied to new templates. Set a default preset in Settings > Style Presets by clicking Set as Default on any preset.
Managing Presets
Create and manage style presets in Settings > Style Presets. Each preset defines:
- Colors — Primary, secondary, accent, text, background, and link colors
- Typography — Font family, size, weight, line height, and color for 9 text levels (H1–H6, body, small, caption)
- Buttons — Primary, secondary, and outline button variants with full styling control
- Spacing — A 5-tier spacing scale (XS through XL)
Variable Validation
The template editor checks profile variables as you type. Any {{profile.XXX}} reference that does not match a built-in profile field or a workspace custom field triggers a warning in the editor:
Undefined profile variable: {{profile.loyaltyTier}} - this field may have been deleted or does not existThis helps catch typos, incorrect casing (variables use camelCase, e.g. {{profile.jobTitle}}), and references to custom fields that have been deleted. Warnings appear in the syntax validation panel alongside HTML and Jinja syntax checks.
If a custom field is deleted while templates still reference it, those templates will render empty values for the corresponding variable. You can check which templates reference a field before deleting it from the Custom Fields configuration page.