Product launches
We now support the creation of “one-off email templates! Create them either via:
POST /businesses/:id/email_templates
and pass { ..., one_off: true }
in the POST
body
POST /email_templates/:id/copy_one_off
to create a one-off copy of a business’s template in their template library
POST /project_email_templates/:id/copy_one_off
to create a one-off copy of a project template One-off templates have the semantic that they belong to a business and can be attached to their campaigns, triggers, and email blasts, but they do not show up in the GET /businesses/:id/email_templates
endpoint. We created one-off templates to support the use case of designing an email during campaign/trigger/email blast creation without it cluttering the business’s template library
Email addresses now support a Reply-To
field. Marketing emails that are sent with this field set will receive replies at the address specified in the Reply-To
field. Contact the team about setting this field on business or project email addresses
Improvements and changes
Stopping scheduled campaigns now restores them to draft
status if they have not yet been sent
Triggers now also have a draft
status. Once a trigger is activated, further deactivations move them to the inactive
status instead
We improved the speed of trigger and event processing
Email blasts can now be deleted via DELETE /email_blasts/:id
The filter syntax (used in triggers and segment definitions) now supports lists. If customer metadata has array fields, you can check for membership a la "value" in customer.values_list
Trigger filtering (via the filter
field in trigger creation/updating) now supports checking for customer segment membership via the induced field customer.segments
. For example, to check if a customer is a member of segment with ID seg_123
, you can now write "seg_123" in customer.segments
Bug fixes
Fixed a bug where certain email templates were not returning the proper set of variables, e.g. {{ customer.first_name }}