Talon.One releases new features, fixes bugs and implements product improvements regularly. This change-log is a curated list of relevant changes designed to inform technical users and those integrating Talon.One.
We also share more detailed posts tailored for our end users on our Update Feed, which you can also access from your account.
- Loyalty: Added the option to create loyalty programs with "sub ledgers", meaning the points that users collect can be grouped by specific "entities.
- Rule Engine: Time-type attributes can now be updated in effects again.
- Application Priority: Fixed an issue where it was impossible to leave the page with unsaved changes.
- Coupon Import: Fixed further issues with race conditions and deadlocks when importing coupons.
- Attribute Creation: When changing the type of an attribute in the attribute creation form, we no longer reset the other fields in the form.
- Events: Fixed an issue where campaign names could not be loaded when expanding an event. Also made the page horizontally scrollable if the content gets too wide.
- Campaign Priority: Fixed an issue where the campaign priority would always be updated when navigating away from the page.
- Coupon Import: Fixed issues when trying to import coupons that used attributes that were never previously used.
- Rule Builder: Fixed an issue with checking if a date is in a list of dates. Previously we would check for the exact timestamp, now we correctly check for the actual date.
- Attributes: We now more consistently use the display name of an attribute in the UI, rather than the internal name.
- Rule Builder: When comparing dates using e.g. "is 2 days after/before", we will now check for 2 calendar days, not 48 hours.
- Braze Coupon Creation: You can now set a usage limit when creating coupons using Braze.
Rule Evaluation and Limits: Before, whenever a rule evaluated to true but a campaign limit was reached, the rule engine would not apply the effects that would violate the limit. However, the rule as a whole was still considered as "evaluated to true".
Now, whenever a campaign limit is reached, and effects can not be applied as a consequence, the rule will evaluate to false.
This fixes a lot of unintended behavior, such as:
- Coupons will now be rejected whenever any campaign limit was reached
- Campaign priority will not consider exclusive campaigns as "triggered" whenever limits are reached
- Emails: We have changed our back-end infrastructure for sending the e-mails for password reset and user invitations. This should make sending these e-mails more reliable.
- Coupon Generation: Disallow leading/trailing whitespaces in coupon patterns.
- Braze Coupon Creation: Coupons generated in Braze now respect case sensitivity of the application.
- Coupon Reservation: Fixed a server panic when trying to reserve a non-existing coupon (we now return a 404 in stead)
- Coupon Reservation: We now return all information on the reserved coupon whenever a reservation was successful.
- Rule Builder: When trying to leave the rule builder with unsaved changes on the page, the prompt will now allow you to save changes before leaving.
- Rule Builder: Fixed an issue where we would sometimes display the wrong attribute name in the collapsed state of the "update a value" effect.
- Rule Builder: Fixed an issue where not all campaigns would show up in the "create coupon" effect.
- Rule Engine: Fixed a bug where floating-point attribute values would be overridden if they were used in a discount formula. This also fixes the mis-calculated discounts in these cases.
- Rule Engine: Fixed rule evaluation when the campaign has cart item filters that try to do operations on an empty list.
- Campaigns List: Re-added "created by" column
- Account Details Page: Improved formatting of numbers.
- Coupon Wallet: Changed coupon reservation endpoint to work with coupon values in stead of coupon IDs
- Rule Builder: Fixed an issue where you could not use cart item filters whose name starts with a number.
- Coupons UI: Fixed an issue where clearing the value of an attribute field would delete the field.
- Rule Builder: Added a description to all conditions, effects and cart filter steps. Multiple other small UI improvements.
- API Tester: Added support for session identifiers
- Integration API: Fixed an issue where the server would panic when sending cart item attributes with a null value.
- API Keys: Fixed an issue where an application could not be deleted if it had API keys.
- Coupon Edit: Fixed an issue where attributes couldn't be deleted when doing a batch edit.
- Referrals: Improved performance of referral code generation.
- Customer Profile Page: Added filtering by state and coupon value to the customer sessions tab.
- Campaigns Overview: Added a column which shows the current total discounts given for each campaign, in addition to the limit value (if configured).
- Campaigns: Removed front-end restrictions on the maximum amount of campaigns that can be in an application.
- Bundles: Added an effect to communicate bundle metadata to your back-end.
- Cart Item Filters: Fixed an issue where attributes of type date and location were not working as expected in filter steps.
- Campaigns: Increased the maximum amount of campaigns per application to 2500.
- Account Details Page: We now show the limits of your plan and how far away you are from reaching them. Contact Talon.One support if you have any further questions.
- Campaign Priority: Refreshed the UI. Added buttons to move campaigns between different sections.
- Campaigns Overview: Added a column which shows the current total discounts given for each campaign, in addition to the limit value (if configured)
- Coupons: Fixed an issue where coupons created through the Braze Integration could not be deleted.
- Customer Sessions: Fixed an issue where session updates for anonymous sessions were not always persisted to the database.
- Rule Builder: Improved behavior when entering a value in certain text fields and then clicking outside of the field.
- Attribute Input Redesign: We redesigned the UI for entering attribute values on Coupons and Campaigns. Empty attributes are omitted from the list, and we now also show attribute type and description.
- Rule Builder: Expose "current day", "current month" and "current year" as built-in integer attributes.
- Application-level attributes: You can now create attributes that exist on an application-level. Define a value for an attribute in the application settings, and then re-use this attribute (and its value) across all your campaigns. See our help center for more information.
- Integration API - Coupon Wallet: We are adding some new endpoints to our integration API that will allow you to reserve coupons for specific customers, and display any reserved coupons in your customer-facing UI. See our developer documentation for more information.
- Campaign Manager: Fixed some edge cases where certain pages (like the rule builder or coupon creation) would fail to load.
- Referrals: Resolved an issue where the "create referral" effect created unusable referral codes.
- Integration API: Fixed an issue where we returned an invalid couponRejectionReason in rare instances.
- Location Attributes: Location Picker will now open centered on your current location (this requires a web browser permission)
- Campaign Dashboard: If you have campaign-wide budgets configured, we will now show the budget counters on the dashboard.
- Rule Engine: "Closed Sessions" and "Total Sales" Profile attributes will now be correctly incremented after rule evaluation on session close events.
- Rule Builder: Built-in cart item attributes can now be used in product bundles.
- Integration API: Fix a race condition when multiple incoming requests are trying to update the same customer profile.
- Rule Builder: Cart Item Filters that are in use will no longer be fully locked for editing. We still prevent changing the name and the output type of the filter, as this would break the rule.
- Rule Builder: Display the "output type" of a cart item filter. We now display if a filter resolves to a list of cart items, or a number, or a string, etc.
- Rule Builder - Product Bundling: Added a new experimental cart filter step for product bundling. This is disabled by default. Contact Talon.One support if you want access to this experimental feature.
- Rule Builder - Geolocation Conditions: Added support for Geolocation based conditions in rules. Create attributes of type "location" and use them in your campaigns to check if the user is/is not in a certain location. Check out our help center article to learn more about this feature.
- Rule Builder: Fix an issue with using custom cart item attributes in set discount effects.
- Campaigns: Fixed issues when trying to create more than 1000 campaigns in 1 application
- Applications: Simplified the process of creating a new application. Removed the "applications overview" in the developer section, and moved all functionality here to a new "Settings" tab on the application
- Campaigns: When trying to navigate to a non-existing campaign, the user will now be redirected to the campaigns overview and receive an error message.
- Create Coupons: Improve performance of coupon creation endpoint.
- Management API - Braze: Introducing a new endpoint for single coupon generation using Braze. This endpoint can be used in the connected content feature in Braze. Contact Talon.One support for more information
- Copy Campaigns: Fixed a bug where the new global cart filters were not copied during a campaign copy
- Integration API: Fixed issues with using time-type Campaign and Coupon attributes in rule evaluation
- Coupon Creation: Disallow spaces in coupon patterns, prefix, suffix (UI only for now)
- Coupons: Added a UI to import coupons via csv file
- Customers Overview: Removed filtering/sorting by last activity date and created date. For performance reasons, this is not supported by our backend.
- Coupon Finder: If the search query has an "exact match", this exact match will be shown on top of the search result list, before any partial matches.
- General UI: Fixed a critical bug regarding date pickers not working
- Coupon Finder: Fixed overflow of really long attribute values
- User Management: Fixed a bug that could cause admins to accidentally remove all roles assigned to a user
- General: Added anonymous user behavior tracking with Hotjar
- Integration API: More robust handling of campaign priority errors: the Integration API will no longer return errors when an error occurred during the update of a campaign set.
- Coupon Finder: Bugfix for the customer profile link on the search result
- User Invite: more descriptive error message when user was already invited
- Profile Page: fixed bug that caused any assigned roles to disappear when the user edited his details
- Rule Builder De-couple cart item filters from rules, allowing them to be re-used across rules.
- Applications/Customers: Redesign customer overview, customer details page
- Integration API: adding 2 new couponRejectionReasons to the meta object: campaignLimitReached, ProfileLimitReached
- Campaigns: Design refresh of campaign settings
- UI: Fix rendering of date-type attributes
- Campaign settings: Fix toggling features on/off
- Campaign Limits: Enable a limit for couponCreation effects
- Management API: Improve performance of GET Campaigns endpoint
- Campaign dashboard: Re-arrange archive/delete/copy campaign functionality
- Attributes: Enable "list of dates" attribute type
- Rule Builder: Add support for "list of dates" in the rulebuilder ("Date is one of"-condition)