Skip to main content

Communications: merge variables with fallbacks, test send, reply-to, and stricter templates

  • Merge variables are a closed set, with fallbacks. {{name}}, {{first_name}}, {{email}} and {{identity_name}}, plus the links {{unsubscribe_url}} and {{consent_url}}. Write {{name|there}} to use a fallback when a contact has no name. Any other tag is refused when you schedule (400 UNKNOWN_MERGE_VARIABLE, with the tags in variables) instead of being sent as literal braces. POST /templates/validate reports it earlier, as a warning with blocksScheduling: true, and its preview now uses the same renderer as the sender.
  • Test send. POST /campaigns/{id}/test-send sends the campaign to the account owner's verified address only, marked [TEST], with no tracking and no effect on statistics or webhooks. Limited per campaign and per account (429 TEST_SEND_LIMIT).
  • Reply-To, and a better From name. Campaigns take an optional reply_to. When from_name is empty, recipients now see the workspace name instead of the internal campaign name.
  • Templates are validated on save. PATCH /templates/{id} checks the merged result (422 TEMPLATE_INVALID), and a template's type cannot change (400 TYPE_IMMUTABLE). Template responses include updated_at. Prose that merely mentions onclick or javascript: no longer raises a false warning.
  • Also documented: POST /recipients/bulk-permanent-delete.

Documentation changed