CeramicCRM Docs

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 exist

This 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.

  • Campaigns — Use templates in email campaigns
  • Profiles — Profile data powers template personalization

On this page