Désolé, mais cette page n'est pas encore disponible en français.

Version 0.18.0 04 nov. 2025

Interaction-based Segmentation

You can now create segments based on how your contacts interact with your campaigns.

Screenshot showing the message segmentation feature in the Keila segment editor

We’ve added segmentation capabilities that let you target contacts based on their message interactions. You can now create segments for contacts who have received, opened, clicked, bounced, complained about, or unsubscribed from specific campaigns.

Interaction-based segmentations are available in the visual segment builder and the Keila Query Language.

Message-based segments

The new messages field supports filtering by:

Query Language Examples

The following examples can all created easily with the visual segment editor. If you prefer manually creating segments with the Keila Query Language, here are some use cases for the new message-based filtering features:

Target by Received Message

Create segments of all contacts who received a specific campaign:

{"messages": {"campaign_id": "your-campaign-id"}}

Target by Engagement

Find contacts who opened a specific campaign:

{"messages": {"campaign_id": "your-campaign-id", "opened_at": {"$empty": false}}}

Re-engagement Campaigns

Target contacts who received but haven’t opened a campaign:

{"messages": {"campaign_id": "your-campaign-id", "opened_at": {"$empty": true}}}

Advanced Targeting

If you want to target all contacts who have not interacted with a given campaign, including those who didn’t receive the campaign, you can use the $not operator:

{"$not": {"messages": {"campaign_id": "your-campaign-id", "opened_at": {"$empty": false}}}}

$empty Operator

This update also introduces the $empty operator. This helps when you want to check whether a field, such as the contact name, or a custom data field, is empty or unset.

Read more about the messages filter and the $empty operator in the docs.