2022 Releases
Release 22.11.1
November 28, 2022
For this release, we have been mostly focused on:
- Rebranding from Velocidi to Kevel Audience;
- Adding a new destination for Kevel UserDB;
- Improving real-time user reach statistics availability.
Rebrand to Kevel Audience
Following the acquisition of Velocidi by Kevel and the product rename to Kevel Audience, this release brings a new look to our Dashboard, in line with Kevel's design guidelines.
New Destination for Kevel UserDB
In this release, we introduce a new destination, Kevel UserDB. UserDB is the user database from Kevel Ad Server. This integration enables the advanced segmentation available on Kevel Audience to be leveraged on Kevel's Ad Server while simplifying the targeting configurations on the Ad Server side.
Improve Real-Time User Reach Statistics Availability
User reach statistics could be unavailable after a service restart, requiring them to be reprocessed. We have improved this behavior, so that computed user reach statistics are still available after a service restart.
All Changes
Click here for the complete list of changes
Release 22.11.0
November 14, 2022
Attribution reports with a large volume of conversion events could be slow to render, sometimes even preventing the report from loading. To solve this, we moved part of the computation to the report generation stage, slightly increasing the time it takes to generate a report but vastly reducing the time it takes to render it each time it is viewed.
All Changes
Click here for the complete list of changes
Fixed
- Improve response time for attribution reports.
Release 22.10.0
October 3, 2022
For this release, we have been mostly focused on:
- Improving the accuracy of Attribution Reports by leveraging the most recent information about an order;
- Creating Attribution Reports from a subset of conversion events.
Improving the Accuracy of Attribution Reports
Until now, attribution reports only used the original order details, disregarding updates to the order, such as cancelation and refunds, hence providing less accurate reports. Going forward, order updates are considered when generating attribution reports, allowing us to provide more accurate reports by leveraging the most recent information about an order.
Attribution Reports from a Subset of Conversion Events
In this release, we expand Attribution Reports with the possibility to create them for a subset of conversion events. These more specific reports help you understand what is driving conversions for example for a specific business unit, product category, or product. To do so, we introduced two new configurations to allow filtering the conversion events and specifying how to extract the value to be considered for the conversion from the event.
The event filter is based on a match rule, similar to the segment rules, where you can select which events to consider based on the value of one or multiple fields from the event.
The value extractor is built via a JsonPath expression, where you can specify the events fields from which to extract the value and perform arithmetic operations on those values. For now, the UI for building these expressions requires technical knowledge and it will be simplified soon.
For more details, see the Attribution Report page.
All Changes
Click here for the complete list of changes
Added
- Add conversion event filter and value extractor configurations for creating attribution reports.
Changed
- Consider order updates when generating attribution reports.
- Prioritize utm_vars when assigning an origin to a tracking event.
Fixed
- Improve response time for segmentation rule's user reach preview.
Release 22.9.0
September 5, 2022
For this release, we have been mostly focused on:
- Introducing new default segments that divide your brand's customer based on churn and number of completed orders;
- Allowing additional identifiers to be provided as customer information parameters in Facebook Conversions API destinations;
- Allowing matches of Facebook's first party
_fbp
and_fbc
cookies in user profiles.
RFM Map
In this release, we introduce the RFM Map, which helps you understand your brand's customer base by organizing it into segments. These segments are built based on a churn measurement, and the customer's count of completed orders.
The way customers are organized into these lifecycle segments can be customized to meet your business needs. The result is a series of RFM Map segments that can be used to activate users:
- RFM Map - Lost heavy buyers: High-value customers that are considered Lost. Recovering them could have a meaningful impact on your business;
- RFM Map - Sleeping: Mid-value customers that are already considered Lost;
- RFM Map - Lost occasional buyers: Probably the less relevant segment in your database. They didn't buy often in the past, and are less likely to come back;
- RFM Map - In need of attention: These customers are slightly overdue, which means they're ready to buy again. They bought quite sometimes. It could be troublesome for your business if they became Lost;
- RFM Map - About to sleep: These customers are slightly overdue, and didn't contact much with your brand;
- RFM Map - Recent heavy buyers: These are your best customers, but they haven't been with your brand that long. They're on the path to becoming Long-term;
- RFM Map - Long-term heavy buyers: Your best customers, were acquired a long time ago and continue to buy often;
- RFM Map - Promising: Customers that have bought a few times with your brand and show the potential to turn into Heavy Buyer or Long-term;
- RFM Map - Nurturing: Customers that made a few purchases from your brand. It is possible that they know little about you and need to be motivated;
- RFM Map - Just acquired: New customers that have just begun buying from your brand.
For more details, see RFM Map.
Additional Identifiers for Facebook Conversions API
Facebook Conversions API (CAPI) requires a Facebook known user ID to be able to identify the user to which an event relates to. Our previous implementation supported sharing events to Facebook identified by the email hash and the Facebook Browser and Click IDs (fbp
and fbc
). These last two had to be available as cookies on the incoming event to be forwarded to Facebook.
This release expands these capabilities, with the possibility to also include a phone hash and the fbp
and fpc
IDs from the user profile. These IDs need to be made available via an ID match in the user profile beforehand. Their usage is optional but highly recommended, to ensure an optimal match rate on Facebook CAPI.
All Changes
Click here for the complete list of changes
Added
- Introduce the RFM Map and its associated lifecycle segments.
- Add support for two new user identifiers: Facebook Browser ID and Facebook Click ID
- Facebook Conversions API can now send reliable and unreliable phone hashes, Facebook Browser ID (fbp), and Facebook Click ID (fbc) as additional customer parameters of an event.
Release 22.8.1
August 22, 2022
In this release, we have simplified the information shown while creating segments using machine learning predictive models with likelihood attributes.
Improvements in the Helper for Machine Learning Segments Using Likelihood Attributes
We removed some of the information from the chart available to assist in the selection of values for segments with the likelihood attributes, leaving the percentage of users and captured buyers comparison for each likelihood value. Additionally, we added a tooltip to each bar value when hovering over them, to support understanding what each value represents.
Along with these improvements on the chart, we have limited the operator selection when working with
these attributes to only allow using greater than
, since one can only draw conclusions from the helper
when using this operator.
All Changes
Click here for the complete list of changes
Changed
- Simplify the helper chart shown on segment creation with likelihood attributes.
Release 22.8.0
August 8, 2022
In this release we extended the order definition with a new source
field.
New source
Field in Order Definitions
Until now, the orders schema did not account for any field describing where the order was created.
This is important under some circumstances to allow us to distinguish between orders triggered from the web, through an event on the website, or orders created offline, on a point of sale, and imported to the CDP through Offline Imports.
We extended the order definitions, in both online tracking and
offline imports, to account for a new optional source
field that our clients can
use to define the origin of that user order. This also makes our definitions more on par with
Shopify format.
If this field is defined, then it becomes visible on the CDP dashboard and available for user-generated attributes and segmentation, meaning that it is easy to create different audiences based on the source of user orders.
All Changes
Click here for the complete list of changes
Added
- The order schema has a new
source
field, which can be included both on events and order imports.
Release 22.7.0
July 11, 2022
For this release, we have been mostly focused on:
- Surfacing existing activation errors across all destinations by listing activation error events;
- Simplifying data imports of files exported by third-parties by auto-detecting file encodings;
- Improving tracked events collected details by capturing ASN names and postal codes.
Listing Activation Error Events
Until now, the support for inspecting activation event errors was fairly limited. There are hints on the health dashboard that certain destinations had problems while pushing data and on the destinations' table with an issues count and error type breakdown, but it was not possible to explore this information at the event level.
In this release, we added a new way of visualizing and inspecting these errors. We can now list all activation error events that happened in the last 7 days, sort and filter them by timestamp, destination, and error description. Furthermore, you can also view the raw event and JSON payload which, depending on the destination, can contain more detailed information about the error.
As many activation errors were a result of an incorrect configuration, this feature will enable users to autonomously understand why a request to a destination is failing, enabling them to fix how it is configured, without relying on external support.
For more information about activation problems go to the Debugging Activation Requests.
Auto-Detecting File Encoding in Data Imports
In order to import data into the CDP, files were expected to be encoded using "UTF-8". However, when exporting files from certain CRM platforms or third-party providers, the files can be encoded with another format which results in garbled text or even an error when importing into the CDP. To address this, file encoding auto-detection can now be enabled when importing data into the CDP. This process relies on heuristics and is not 100% accurate for all file encodings. If you know the encoding for your file, or auto-detection is failing, it is also possible to explicitly specify the file's encoding.
Capturing ASN Name and Postal Code in User Tracking Events
We have extended the geolocation information derived from the request IP to include the postal code and the Autonomous
System Number (ASN) name. This information is being stored in the user tracking event, under meta.postalCode
and
meta.asn
and can be used to create user attributes for segmentation. The full list of geolocation information derived
from the request IP is available in the Augmenting Collected
Events section.
All Changes
Click here for the complete list of changes
Added
- List activation errors on a new "Activation errors" page.
- Allow specifying the files' encoding in data imports.
- Add support for deriving ASNs and postal codes and persist them in user tracking events.
Changed
- Rename channel insights' "Purchase amount" to "Orders placed amount".
Fixed
- Fix channel insights' purchase amount value when system contains
orderUpdate
events.
Release 22.6.1
June 27, 2022
For this release, we have been mostly focused on:
- Adding support for receiving user events from a server;
- Providing a new source for receiving events from Segment;
- Enhancing rule creation experience by allowing editing segmentation rules manually.
Receiving User Events from a Server
In this release, we have extended our event tracking API to support receiving events from a server. When processing
traditional events, we extract some information from HTTP requests to supplement the provided details, such as the IP
address. In events sent directly from your website or mobile application, this works as expected since this data is sent
from the client used by the user. However, in server-to-server event tracking, the HTTP request contains information
specific to the server that must be ignored or would degrade the user's profile with wrong information, such as
considering the geo-location of the server as the user's location. For this purpose, we have added a new endpoint that
ignores any client-related data in the HTTP request and provides an interface to specify user-related data. This new
endpoint is http://tr.cdp.<WEBSITE_DOMAIN>/events/server
and an example request is the following:
POST http://tr.cdp.<WEBSITE_DOMAIN>/events/server
Content-Type: application/json
{
"type": "pageView",
"siteId": <SITE_ID>,
"clientId": <CLIENT_ID>,
"userId": {
"idType: <ID_TYPE>,
"id": <ID>
},
"ip": <USER_IP>,
"documentLocation": <DOCUMENT_LOCATION>
}
For more technical details see the API Reference.
Receiving Events from Segment
In this release, it is now possible to receive real-time user data from Segment. To accomplish
this, we provide a webhook endpoint that supports both identify
and track
events which makes it possible to match
user IDs and receive events as defined in the events specification. Events that do not have a direct
translation to our specification are converted to custom
events, ensuring all events are
available in the CDP. The list of supported events is as follows: any data. The list of supported events is as follows:
Email Bounced
=>emailBounce
Email Delivered
=>emailDelivery
Email Link Clicked
=>emailClick
Email Opened
=>emailView
Unsubscribed
=>emailUnsubscribe
Product Added to Wishlist
=>addToWishlist
Product List Filtered
=>productImpression
Product List Viewed
=>productImpression
Checkout Step Completed
=>checkoutStep
Product Reviewed
=>productFeedback
Product Clicked
=>productClick
Product Viewed
=>productView
Order Cancelled
=>orderPlace
Order Completed
=>orderPlace
Order Refunded
=>orderPlace
Order Updated
=>orderPlace
Products Searched
=>search
Cart Viewed
=>cartView
Product Added
=>addToCart
Product Removed
=>removeFromCart
Wishlist Product Added to Cart
=>addToCart
Visit the webhook documentation for more information.
Editing Segmentation Rules Manually
The CDP provides a helper to guide the creation of segmentation rules. This helper lists and organizes the attributes available in the system, filters which operators are helpful for each attribute given their type, and in some cases, provides help to select what values the attribute should be compared against. Finally, this user interface generates a textual representation of the rule, which is less user-friendly.
However, when mass editing a set of similar rules, creating them one by one is not practical and often time-consuming. To address that, rules can now be edited manually via its text representation instead of interacting with the user interface. This enables two new use cases:
- After creating a rule via the user interface, the user can now copy its text representation and create a new one, modifying only a few values to quickly create a similar segment;
- Although the user interface offers a simplified way to build a segmentation rule, more complex rules can be created by typing the rule manually from scratch for advanced use cases. These rules won’t be representable in the user interface even though they continue to be valid.
All Changes
Click here for the complete list of changes
Added
- Add new event tracking endpoint for server-to-server events.
- Add support for receiving event and user data from Segment via webhook.
- Allow editing segmentation rules manually via its text representation.
Fixed
- Fix E-goi user import creation failing when API key was pasted on the input, instead of typed.
Release 22.6.0
June 13, 2022
For this release, we have been mostly focused on:
- Improving the overall experience when building segments using order-based user attributes;
- Simplifying the operators available when creating segments using user attributes that are datetimes;
- Adding more flexibility around CSV-based file imports by allowing semicolon-separated files;
- Simplifying the process around IP anonymization in tracking requests by removing the option to configure the anonymization strategy;
- Preventing authentication loss with Facebook in case of security events when using Facebook Custom Audiences destinations.
Improving Order-Based User Attributes
Prior to this release, the experience around building segments using order-based data required a careful combination of
event and order-based user attributes. We provided a few order-based user attributes out of the box: ordersTotal
(for
the total value of open or fulfilled orders), ordersAvg
(for the average value of open or fulfilled orders) and
completedOrders
(for the count of open or fulfilled orders). However, they were not sufficient for all relevant use
cases and could lead to some inconsistencies when combined with event-based user attributes that don't carry the current
order state around. In order to fix those inconsistencies and enable more use cases around order-related segments, we
have introduced a new set of order-based user attributes readily available under the orders.
prefix. These attributes
are available for all users and deprecate the existing ordersTotal
, ordersAvg
, and completedOrders
attributes.
Attributes are grouped according to the order state and we provide 4 different order state groupings:
all
: refers to all orders, regardless of their current state;openOrFulfilled
: refers to orders that are either open (placed or paid) or have already been fulfilled;canceled
: refers to orders that have been canceled;refunded
: refers to orders that have been refunded.
The complete list of the newly available attributes is:
orders.all.count
: Number with the count of all orders the user has performed;orders.openOrFulfilled.count
: Number with the count of all orders the user has performed and that are either open or fulfilled (replaces the deprecatedcompletedOrders
attribute);orders.canceled.count
: Number with the count of all canceled orders the user has performed but that were eventually canceled;orders.refunded.count
: Number with the count of all orders the user has performed but that were eventually refunded;orders.openOrFulfilled.total
: Number with the total value of all orders the user has performed and that are either open or fulfilled (replaces the deprecatedordersTotal
attribute);orders.openOrFulfilled.average
: Number with the average value of all orders the user has performed and that are either open or fulfilled (replaces the deprecatedordersAvg
attribute);orders.all.timestamp.first
: Creation timestamp of the user's first order;orders.openOrFulfilled.timestamp.first
: Creation timestamp of the user's first order that is either open or fulfilled;orders.canceled.timestamp.first
: Creation timestamp of the user's first order that was eventually canceled;orders.refunded.timestamp.first
: Creation timestamp of the user's first order that was eventually refunded;orders.all.timestamp.last
: Creation timestamp of the user's last order;orders.openOrFulfilled.timestamp.last
: Creation timestamp of the user's last order that is either open or fulfilled;orders.canceled.timestamp.last
: Creation timestamp of the user's last order that was eventually canceled;orders.refunded.timestamp.last
: Creation timestamp of the user's last order that was eventually refunded;orders.all.timestamp.history
: Array with the creation timestamps of all orders the user has performed;orders.openOrFulfilled.timestamp.history
: Array with the creation timestamps of all orders the user has performed and that are either open or fulfilled;orders.canceled.timestamp.history
: Array with the creation timestamps of all orders the user has performed but that were eventually canceled;orders.refunded.timestamp.history
: Array with the creation timestamps of all orders the user has performed but that were eventually refunded.
You can see details about these and other attributes in the User Attributes page.
The new attributes are all available in the segment creation interface under the Orders category:
Examples of targeting rules enabled by this new set of segments are "all users that created an order last month that wasn't refunded nor canceled", "all users that had at least one order canceled" and "all users that, in the previous weeks, created an order that was refunded".
Simplifying Segment Creation Using Datetimes
In this release, we have also simplified the segment creation around user attributes that are datetimes. We provide various user attributes that are datetimes: some are dates in the past (like the date of the first page view) but some are expected to be in the future (like the prediction of the next purchase date). In order to make it more evident that we're dealing with future dates, we provided a set of aliases in the segment creation interface around common datetime operators: "expected in less than", "overdue by less than", "overdue by more than", and "expected in more than". Unfortunately, this set of aliases was also available when creating rules around user attributes that constitute dates in the past, leading to some weird descriptions like "last page view expected in less than 2 days". In order to fix that and to simplify the segment creation when using this type of attributes, these aliases no longer show up when creating a rule targeting a datetime that's expected to be in the past. For dates in the future, we continue to display these friendlier aliases.
Supporting CSV Files with Semicolons
The term "CSV" denotes various similar delimiter-separated formats but we previously only supported the more common
"comma-separated values" format. In this release we added support for specifying the separator being used, supporting
both commas (,
) and semicolons (;
). This eliminates the need for manually formatting certain files before import.
Simplifying IP Anonymization
Prior to this release, we supported customizing the anonymization strategy applied to IP addresses before storing and
making tracking events available in the CDP. Given that this option was never used, we have simplified the API by
dropping the option and defaulting to the strategy of always replacing the last octet of the IP address with 0
. For
example, an IP address like 123.22.22.14
available in a tracking event will be persisted in the CDP as 123.22.22.0
.
Preventing Authentication Loss with Facebook
When using a Facebook Custom Audiences destination, you're asked to login with Facebook in order to connect with an ad account. Whenever there was a security event on that account, the authentication would be lost, requiring you to login again at the destination configuration. We have now improved the authentication strategy to use a system user token, which prevents the scenario above. To make it more evident which ad account you're authenticated with, we now show its name in the authentication widget:
All Changes
Click here for the complete list of changes
Added
- Add more order-based user attributes:
orders.all.count
,orders.openOrFulfilled.count
,orders.canceled.count
,orders.refunded.count
,orders.openOrFulfilled.total
,orders.openOrFulfilled.average
,orders.all.timestamp.first
,orders.openOrFulfilled.timestamp.first
,orders.canceled.timestamp.first
,orders.refunded.timestamp.first
,orders.all.timestamp.last
,orders.openOrFulfilled.timestamp.last
,orders.canceled.timestamp.last
,orders.refunded.timestamp.last
,orders.all.timestamp.history
,orders.openOrFulfilled.timestamp.history
,orders.canceled.timestamp.history
andorders.refunded.timestamp.history
. - Add support for customizing the character separator when performing a data import from a CSV file.
- Show the Facebook Ad Account name in the Facebook authentication widget when configuring a Facebook Custom Audiences destination.
Changed
- Omit the operator aliases "expected in less than", "overdue by less than", "overdue by more than" and "expected in more than" from the segment creation interface when dealing with user attributes that are meant to be dates in the past.
- Improve the Facebook Custom Audiences authentication strategy by relying on a system user token. This prevents a loss of authentication with Facebook in case of a security event on the target account.
Deprecated
- Deprecate the order-based user attributes
ordersTotal
,ordersAvg
andcompletedOrders
in favor oforders.openOrFulfilled.total
,orders.openOrFulfilled.average
andorders.openOrFulfilled.count
.
Removed
- Remove support for customizing the anonymization strategy for IPs when persisting tracking events.
- Remove the possibility to define a throttle when performing data imports. This was only available via API and was unable to be configured via the CDP dashboard's interface.
Release 22.5.2
Available: 2022-05-30
Changed
- Updated the frequency at which the IP to location resolution databases are updated, for more accurately generate the city and country user attributes.
Fixed
- Several visual and performance improvements.
Release 22.5.1
Available: 2022-05-16
Added
- Entries in configuration tables' rows can be opened in a new tab using a middle mouse button click.
Fixed
- Improved the performance of the autocomplete dropdown for selecting an attribute name while creating advanced segments.
- Fix the shipping country column on the list of orders in the customer details, which was showing the shipping method instead.
Changed
- Clarified that the Likely to Buy model helper is only available for the
greater than
operator. - Minor improvements to the user interface.
Release 22.5.0
Available: 2022-05-02
Added
- Explain why a segment reach is not available when using rules with attributes that are not on the sample used for estimating the user reach yet.
Fixed
- Prevent activation errors on a Mailchimp destinations when a user does not exist on Mailchimp's side.
Changed
- Modify the product data imports form to identify the file schema instead of the file format (Google Merchant XML vs XML).
- Automatically clear the input value of a segment rule when selecting a different segmentation option.
Release 22.4.1
Available: 2022-04-18
Added
- Validate destinations' parameter names to prevent leading or trailing whitespace characters.
- Further validate dates on imports to prevent additional invalid date formats.
Fixed
- Scheduled imports do not run automatically after creation but are delayed until their first scheduled time.
- Fixed an issue preventing the deletion of segments from the segment page.
- Hide some operators while segmenting with unknown type fields in the segment builder.
- Improve user sampling consistency for estimating 1-month and all-time segment statistics.
Removed
- Removed the templated transformations for product imports.
Release 22.4.0
Available: 2022-04-04
Added
This release introduces Dynamic Attributes. This feature enables the creation of user attributes, given an event filter, an event attribute, and an aggregation strategy. Dynamic attributes expand the capabilities of user segmentation to leverage any information available in any captured events, including those from the past three months. The user interface for creating attributes is still under active development, our customer success team can help you navigate through it.
Scheduled triggers' periodicity can be further customized, including specific days or hours, on par with the scheduled imports.
Fixed
- Prevent the creation of segments without a segment ID.
Release 22.3.1
Available: 2022-03-21
Added
The Likelihood to Buy machine learning model can be configured to predict purchases in specific categories. This feature is enabled on-demand per category and customer.
Scheduled imports' periodicity can be further customized, including specific days or hours.
Fixed
- Segmentation rules now leverage an
isDefined
operator to evaluate if an attribute exists, improving support for rules using attributes not available on all user profiles.
Release 22.3.0
Available: 2022-03-07
Added
- While importing data from files, IDs are automatically lowercased. This ensures consistency on the stored IDs and aligns with the industry's best practices to exchange user IDs. This manipulation is automatically applied to plaintext emails, hashed emails, and hashed phone numbers.
Fixed
- Fixed a bug that prevented searching for customer details using IDs that contain non-alphanumeric characters.
Release 22.2.1
Available: 2022-02-21
Added
- While deleting some destinations, a notification clarifies that previously activated data is kept on the destination platform.
Fixed
- Fixed a bug in which users with no events would not be considered for calculating user statistics, biasing segment insights.
Release 22.2.0
Available: 2022-02-07
Added
Customer data files can now be tested before being imported. The dry-run feature will provide feedback on the file's structure and contents, warning about invalid configurations or data entries.
While importing contacts from E-goi, it is possible to import only the contacts in a segment, given an E-goi segment ID. Doing so reduces the import size, making the process more targeted and efficient.
Improved the destinations' configuration form, limiting the ID types selectable to only those valid for the destination. If only one ID type can be used, that option is selected by default and cannot be changed.
Changed
ID match events no longer show the user attributes. The matched IDs are still present and provide access to the customer's profile, where the user attributes are available.
Release 22.1.1
Available: 2022-01-25
Added
Facebook Custom Audiences can now leverage reliable or unreliable email and phone number ID types.
Segment insights can now be accessed from the segments list to compare multiple segments.
Fixed
- Fixed an issue where non-email ID types were sent as email IDs to Facebook Custom Audiences, rendering them unusable.
Release 22.1.0
Available: 2022-01-10
Added
While creating a segment, the insights now present the revenue and average order value.
Changed
- The Javascript tag only sends activation, match, and cookie sync events after the
load
browser event. This prevents delays while loading the page. - Introduced a default cache duration of 1 hour on the Javascript tag, contributing to the performance of the adopting sites.
Fixed
- Improved the segment builder user experience and performance.
- Fixed an issue that could prevent activations to Facebook Custom Audiences when many audiences were configured.
- Fixed an issue while creating a file import that could produce multiple import instances instead of just one.
- Fixed an issue preventing the prediction of the next purchase date if the user's previous orders did not have line items.
- Several minor visual improvements.