Тема и тело шаблона рендерятся парсером MODX: всё из &data (или массива $data) доступно как [[+ключ]], работают фильтры.
[[!vestnik_notify? &event=`order.paid` &email=`[[+email]]` &data=`{"order_id":"105","fullname":"Иван"}`]]
[[+order_id]]→ 105[[+fullname]]→ Иван[[+email]]→ адрес из&email
Приёмы
Экранирование: [[+fullname:htmlent]]
Значение по умолчанию: [[+fullname:default=`клиент`]]
Условие: [[+order_id:notempty=`Ваш заказ №[[+order_id]]`]]
Ветвление: [[+status:is=`paid`:then=`Оплачено`:else=`Ожидает оплаты`]]
Ключи чувствительны к регистру: "order_id" → только [[+order_id]]. Отсутствующий плейсхолдер выводится пустым, фильтры :default и :notempty на нём срабатывают.
Данные получателя
Для каждого получателя письмо рендерится отдельно: [[+recipient_email]], [[+recipient_name]], [[+recipient_username]], [[+recipient_id]] (логин и id — только у получателей-пользователей). [[+email]] и [[+fullname]] остаются данными события: в письме менеджерам это клиент, а не сам менеджер.
Отправитель
Поля «От кого» (email и имя) в шаблоне переопределяют vestnik_from_email / vestnik_from_name.