Changelog

changelog

Every week we summarize what happened in Ecomail. New features, minor and major improvements or bug fixes.

Smart delivery, A/B testing in automations, redesigned segmentation and WooCommerce 2.5

Smart delivery limits the number of messages to a single contact, A/B testing directly in automations splits contacts into variants with different scenarios, segmentation has clear categories with sections and new conditions, redesigned WooCommerce plugin 2.5.0, new Replace phone prefix mode and shop selection in IdoSell.

NEW

Smart delivery: contacts no longer receive messages too often

A new feature limits the number of messages a single contact receives within a set time. Two independent rules are available. Priority quarantine ‑ if a contact received an email within the last N hours (max. 24), the next one is not sent. Frequency cap ‑ a contact does not receive more than X emails in Y days (max. 7 days back). Both rules work independently; you can enable just one or both at once. Rules can be configured based on the scope of the send ‑ campaigns, automations, or both. Configuration is in the campaign, rule management is in Account management ‑> Settings ‑> Delivery rules. Test recipients are never affected by quarantine. The limitation currently works only for email campaigns; SMS is prepared at the data level but SMS throttling is not yet active.

NEW

Automations: A/B testing of scenarios

A new A/B testing action directly in automations. It splits contacts into 2‑5 branches according to the weights you set (50/50, 90/10, or any other split). Each branch can have its own complete scenario ‑ a different email, different timing, a different channel, a different number of steps. A contact assigned to a branch stays there even on repeated passes (sticky assignment), so the results stay consistent. Weights can be changed manually at any time and no one falls out of the scenario. The winner is selected manually by the marketer based on the report shown directly at the action.

IMPROVEMENT

Segmentation: clearer categories and new conditions

We grouped dozens of individual queries in segmentation into clear categories with sections. Instead of scrolling through a long list, you choose a category (e.g. Purchased a product) and then narrow it down ‑ by specific product, category, tag or price. The change applies to e‑shop segmentation (purchases, orders, delivery address), campaigns and automations (opens, clicks, recipients), and the condition wording is unified across campaigns, SMS campaigns, automations and the web. Based on feedback from support, we also added new segmentation conditions.

IMPROVEMENT

WooCommerce: redesigned plugin version 2.5.0

A completely redesigned plugin for WooCommerce. Initial sync of customers and orders runs in the background and resumes where it left off on failure. Orders and contacts are sent to Ecomail in the background; the checkout never waits for Ecomail's response. The plugin supports WP Consent API ‑ tracking is not sent without cookie consent. Tags are not overwritten; the plugin only adds its own and those from Ecomail remain. The API key is encrypted, the webhook is protected, and the communication log with Ecomail contains no personal data. Subscription status is visible directly in the WordPress users list. Translations into CZ, SK and PL. Requirements: PHP 8.2+, WordPress 7.0+, WooCommerce 10.9+.

IMPROVEMENT

Edit contact step: new Replace phone prefix mode

The Edit contact step has a new Replace phone prefix mode. The existing mode only adds a prefix to a number that does not have one and remains unchanged. The new mode replaces the prefix on all numbers with the chosen one ‑ for example, +420601123456 or 00420601123456 with prefix set to +421 becomes +421601123456, and a number without a prefix gets it added. Useful for unifying numbers from different countries or after an import. If the result is not a valid phone number, nothing is written and the reason is shown in the automation log for the contact.

IMPROVEMENT

IdoSell: shop selection for synchronisation

In the IdoSell integration settings, you can now choose which shops to synchronise. After connecting the API key, a list of all shops from the IdoSell account is shown and each can be selected with a checkbox; all are selected by default. Events from unselected shops are ignored, the contact carries a tag with the shop name, and the _newsletter tag is only removed when the contact is unsubscribed from all selected shops. For accounts with a single shop, the selection is pre‑set and cannot be changed. Changing the selection only affects future synchronisation; historical data from a removed shop remains.

WhatsApp, protection of used custom fields and phone number fixes

BETA release of the WhatsApp Business integration, new protection against deleting a custom field used by a segment or campaign, more reliable phone number writing in the Edit contact step, and a fix for searching by the Property field in custom events.

NEW

WhatsApp: BETA version of the integration launched

We launched a BETA version of the WhatsApp Business integration, which uses the official WhatsApp Business API from Meta. A WhatsApp campaign is created the same way as an SMS campaign ‑ you choose a segment and a template approved by Meta, map merge tags to contact fields, and can send yourself a test message before sending. The statistics show how many messages were delivered, read, and not delivered. The integration is connected in the More → WhatsApp section and is available on the Marketer+ and CDP plans. Sending limits and quality ratings are controlled by Meta.

IMPROVEMENT

Custom fields: a field in use cannot be deleted

A custom contact field cannot be deleted if it is used by a list segment or by a campaign ready to be sent, including campaigns that failed while sending. The application rejects the deletion and shows which campaign uses the field and what needs to be resolved. Previously, a segment with a deleted field silently returned no contacts. A field that is not used anywhere can be deleted as before.

FIX

Edit contact step: phone prefix is written correctly

A prefix entered without '+', for example 420 or 00420, is now written in the form +420. For Czech and Slovak numbers, the prefix is not attached again when the automation runs repeatedly ‑ previously numbers such as 420420123456789 could be created, and SMS could not be delivered to them. A prefix containing letters or an accidentally pasted full number is rejected. The automation step also no longer fails if the phone is stored in a custom field as a number, and leading spaces in the original number are removed.

FIX

Edit contact step: invalid phone values are not written

A number that did not fit in the Phone field used to be silently truncated. It is now not written, and the reason is shown in the automation log for the contact ‑ the same as for a result that is not a valid phone number. The value for the Phone field must be a valid number including the prefix; the step no longer accepts a prefix alone (for example +420) or a number without a prefix. The Set only if empty mode does not overwrite a stored zero. A single faulty contact no longer fails the entire batch ‑ healthy contacts are written. Values are now also checked when the step is created; existing steps with an invalid value will keep running, but the value will need to be corrected the first time they are edited.

FIX

Segmentation: custom events can be searched by the Property field

In segmentation by custom events, it was not possible to search by the Property field because it was linked to the wrong event data ‑ a contact with an event sent with only a property and no value could not be found. The Category, Label, Action and Property fields now match the data sent in the event, and the value can be used as a separate condition through the Value key, operator and Value on one row.

Live domain status updates, Basic Auth for webhooks and campaign fixes

Live domain verification status updates, optional Basic Auth authentication for webhooks, fix for the stale status shown on transactional domains, fix for the Contact update trigger UI in Safari, fix for dashboard display, fix for EMA Brand Kit, and fix for RFM segment sync to Sklik.

IMPROVEMENT

Domains: verification status now updates live

The Domains page previously checked the current verification status by repeatedly polling the server. The status now updates immediately once the background check completes ‑ for a newly added domain, you now see the verification result within seconds instead of waiting up to half a minute.

NEW

Webhooks: optional Basic Auth authentication

Webhooks from automations, from a contact's status change in a list (e.g. unsubscribe), and message events from campaigns can now have optional Basic Auth authentication configured via the request header. Useful for clients who only want to accept verified requests.

FIX

Domains: transactional domains no longer stay in a stale status

Transactional domains could keep showing a stale verification status even after a successful revalidation ‑ the domain worked and sent emails correctly, only the display in the Domains section didn't reflect reality. The status display is fixed.

FIX

Automations: the Contact update trigger works in Safari

In the Safari browser, checkboxes could not be checked and the options dropdown could not be opened in the Contact update trigger settings ‑ the elements would instead visually shift to the centre of the screen. The issue is fixed.

FIX

Dashboard: the list of contact lists for the last campaign now wraps correctly

The list of contact lists for the last sent campaign on the dashboard did not wrap onto a new line for longer content, forcing horizontal scrolling. After a page cache refresh, list names were also temporarily replaced with N/A. Both issues are fixed.

FIX

EMA: Brand Kit now displays reliably

In some cases, an existing Brand Kit in EMA was not displayed even though it was saved and available in the data. Brand Kit display is fixed.

FIX

Sklik: RFM segments now sync with up‑to‑date data

For Sklik integration circles using RFM segmentation, the transferred contact list could be empty or outdated due to a timing mismatch between the daily RFM segment recalculation and the sync to Sklik. Synchronisation now runs only after the segment recalculation has completed.