Changes to promotion nomenclature and ID handling for customer promotion points through Import Framework

Summary

We have made some key enhancements for the benefit of brands and system integrators that display promotion names for imported points in a customer facing app or website and/or leverage promotion IDs for reporting on import activities across time. 

The following are the changes made - 

  • The promotion name you specify during import is now retained as is - no timestamp is appended to the name.
  • Files imported using a particular import template will have the same promotion identifier assigned.
  • Specify an external promotion identifier for a particular import template. This could be a new or existing identifier.
  • The following import profiles will have the changes mentioned .
For the Transactions (Bills) deduction profile, promotion expires all points, and awards the remaining back as a single PABP entry for which the user specifies the name. Hence, it is part of this enhancement.


Problem

Import framework is preferred and used extensively by brands to add promotional points to a customer’s account for multiple reasons. For example, bulk goodwill, integration lapses, promotions executed through other 3rd party systems, etc. While using import framework, there are some challenges that brands and system integrators force. 

  1. Appending the date and time of processing the file automatically at the end of the promotion name. 
  • For example, If you name of the promotion in the template as Bonus Points, then it would show up as Bonus Points-20220503122236.
  • This was done earlier to maintain uniqueness, prevent conflicts in the system and enable easy debugging. Other superior methods (i.e. event logging) has come up since then to address these problems, but the timestamp remained.
  • This made it unsightly and unfriendly from a UX perspective when used in a customer facing app or website
  1. Each file imported would get a separate internal promotion identifier generated by the system
  • This made it difficult to pivot across all the points given through a single template for the purpose of business reporting or analysis
  • This was particularly a problem since import framework has file size limits, and there would often be instances where a single intended import has to be split across multiple files, and each ended up with their own identifiers
  1. Users could not specify the external promotion identifier against these imported points
  • This limits usability of the external identifier feature
  • It also made it impossible to have an activity where part of it would be executed through the Loyalty events, and a part gets imported

Solution

  • The system no longer adds the timestamp to the end of the promotion name, and instead retains the name the user specifies. When you create these points entries, names stored in the backend are directly impacted and not just restricted to displaying names while fetching.  
  • For example, the name used to appear as “Bonus Points-20220503122236”, will now show up only “Bonus Points”.
  • Multiple files imported using a particular saved import template will all have the same promotion identifier assigned to them
  • This ID is retained as long as no changes are made to the template.
  • When a new change is made in the template and saved, a new ID is generated.
  • User can now input an external promotion identifier against a particular import template for those four mentioned templates
  • This is optional.
  • The user can provide a brand new identifier, in which case a new promotion is created with this identifier and name.
  • The user can also provide an existing identifier, in which case points will be awarded under the existing promotion.
The user must take care to provide the same name as the existing promotion’s name. If there is a mismatch, the system will throw an error.


For more details,  see Bill points promotion, Line item points promotion, Customer promotion, and Transactions deduction

FAQs

Q1. Does this change the promotion name of previously imported points as well to drop the timestamp?

A1. No, only the file imports processed after this release will be affected by this enhancement.

Q2: The timestamp allowed me to trace the file that was used to import these points while debugging, how can I do that now?

A2: The awarded date-time of the imported points will be the same as the date-time when the import was processed, hence that can be used for the time being.

However, a superior and more intuitive alternative to trace the file is planned in future scope (you can read more about it below).

Q3. Do I have to edit existing templates or scheduled imports for them to now retain the promotion name and promotion ID?

A3: The promotion name will be retained immediately after the release, so you don’t need to edit existing templates or scheduled imports.

Q4: I would like to change/update the name of the promotion in a particular template while retaining the same promotion ID, can I do that?

A4: No, updating or changing the name of a promotion created through import is currently not supported. Changing the name of a promotion in a particular template 

Q5: How can I identify all the points imported via a particular file, since multiple files will now have the same promotion ID?

A5: This can be determined via databricks.

The event_subject_id in the event_log table will contain the import file ID, so you can find the event_log_id (the primary key of the event_log table) where the event_subject_id = <import_file_id>.

Q6: I made/found an error in a single file that got imported, how can I expire those points alone?

A6: You can determine the event_log_id for that particular file using the method described in A5, and then find all the points awarded ref IDs pertaining to that event_log_id from databricks.

The all/some of these Ref IDs can be expired using the import profile for points expiry - Update Points Expiry (PointsType & RefID)

Q7: I made some changes to the import template by mistake, and now all the imported files are getting a new promo ID, how do I go back to the previous promo ID?

A7: You can use the external promotion ID support for this. You will have to find the external promo ID that is desired via data export or databricks and then add that to the template, then the older promo ID will be used.

Q8: Can I use an existing external promotional identifier of a Bill Promotion in the Customer Promotion import profile so that I don’t have to give bill/transaction references?

A8: No, when using an existing promotion’s external identifier the user has to ensure that the identifier belongs to the same type of promotion.


Future Scope

The following additional enhancements are planned in the near future to further improve the usability of the above features and to address some of the unsolved problems.

  • Easy traceability of the import file details against a particular point entry.
  • The import file ID for a particular points entry will be made available through Ledger Explode API.
  • The same will also be used in Member Care so that the user can find the import file ID directly from the points ledger in Member Care’s new UI in a few clicks.
  • Ability to import points from multiple activities/promotions in a single file or scheduled import.
  • We will allow the user to optionally specify the promotion names and details as part of the file rather than the template itself, so that they may include multiple promotions in a single file itself.
  • This can be useful in flat/batch file based integrations with other third party systems.