Setting up Bitrix24 email newsletter templates

Our company is engaged in the development, support and maintenance of Bitrix and Bitrix24 solutions of any complexity. From simple one-page sites to complex online stores, CRM systems with 1C and telephony integration. The experience of developers is confirmed by certificates from the vendor.
Our competencies:
Development stages

Configuring Email Newsletter Templates in Bitrix24

Email marketing in Bitrix24 lives inside the Marketing module (also known as sender). An email template here is more than just HTML: it is a combination of a block editor, CRM variables, and personalisation rules. If a template is built carelessly, emails render differently in Gmail, Outlook, and Apple Mail — and that is a layout problem, not a service provider issue.

Template architecture in the sender module

Bitrix24 stores email templates in the b_sender_letter table. Each template consists of:

  • HTML email body — stored in the BODY_TEMPLATE_HTML field
  • Plain-text versionBODY_TEMPLATE_TEXT (critical for corporate mail servers with HTML disabled)
  • Blocks — the block editor structure in JSON format: BODY_DESIGNER

The built-in editor generates table-based HTML — yes, still tables in the 2020s, because Outlook prior to 2019 does not understand flexbox or grid. This is not a Bitrix24 bug; it is the reality of email clients.

To upload a custom HTML template, use the Code tab in the email editor. An important caveat: Bitrix24 wraps your HTML in its own wrapper with a DOCTYPE and a <head>. If you paste a full HTML document, double nesting occurs and the email breaks. The correct approach is to paste only the contents of <body>.

Personalisation using variables

Variables in Bitrix24 templates use the syntax #{VARIABLE_NAME}. The standard set for CRM mailings:

  • #{NAME} — contact's first name from CRM
  • #{COMPANY} — company name
  • #{ASSIGNED_BY_NAME} — responsible manager
  • #{UNSUBSCRIBE_LINK} — unsubscribe link (legally required)

Extended variables with data from deals and leads are connected via segments and trigger chains. If a variable is not filled in CRM, the email will contain an empty string. To substitute a default value, use the syntax #{NAME|"Dear Customer"} — this works starting from certain versions of the sender module; in older versions, the fallback must be implemented in the template code via a conditional block.

Email client compatibility

The most common problem: the email looks correct in Gmail but breaks in Outlook. Reasons:

Outlook uses Word as its rendering engine — it does not understand max-width, ignores padding on certain elements, and clips background images in CSS. Outlook requires special conditional comments: <!--[if mso]>...<![endif]-->.

Fonts. Google Fonts via @import work in Gmail but not in Outlook. Always declare web-safe fallbacks: font-family: 'Roboto', Arial, sans-serif.

Retina images. For HiDPI displays, images must be twice the displayed size, with explicit width and height attributes on the <img> tag. Without this, images appear blurry on iPhone.

For compatibility testing before launching a campaign, use Litmus or Email on Acid — they render previews across 70+ clients without actually sending.

Template development workflow

  1. Audit existing templates and identify compatibility issues
  2. Design the structure: blocks, branding, responsiveness
  3. Build table-based HTML accounting for Outlook quirks
  4. Configure personalisation variables and verify substitution
  5. Test in email clients via Litmus/Litmus Preview
  6. Upload to Bitrix24 and configure the plain-text version
  7. Send a test mailing to control addresses for all target clients
Scope Timeline
Refining an existing template 4–8 hours
New template from scratch (1 design) 1–3 days
Template system (5+ emails in a sequence) 1–2 weeks

Pricing is calculated individually after analysing the brand book, existing templates, and personalisation requirements.