Document toolboxDocument toolbox

Active Subscriptions Custom Attribute

Business Case:

Blueshift templates and onetime campaigns does not have the capability to look across transactions. i.e. a segment with a stared subscription transaction for publication code 'X', when used in a campaign, the conditions in the template can only based on publication code x. In order to create a template with dynamic ad block where the block can be dynamically populated  based on the active publications a customer has, the data is required at the profile level. 

Solution: 

A new custom attribute (as an array data type) is added in the customer profile. This attribute is called active_subscriptions. The attribute contains the publication code for all the active subscriptions for a customer. 

The batch job runs every 8 hours (starting at 8 AM EST) and performs the following steps as a part of the process to identify the active subscriptions for a customer and to generate the user file for each affiliate. 

  1. Pull the customer id ([ADV customer number]-[ADV email id]) with any active subscriptions with the affiliate 

  2. Pull all the active subscriptions for each customer 

  3. If there is more than one active subscription, list the subscriptions in a comma delimited array

  4. If the customer no longer has any active subscriptions with the affiliate, set the active_subscriptions field to blank 

  5. Merge the pull against the last pull from the previous run to capture the changes 

  6. Push the changes in a .csv file to the Blueshift S3 bucket

One file is sent to Blueshift S3 (as an update file) in every 8 hours. This file has 2 columns - customer_id, and active_ subscriptions (which holds all active subscriptions for the customer for an affiliate).

Sample of the file: 

customer_id|active_subscriptions
000054041265-000023974119|CMZ,IKA,PRL,SVC
000111036379-000098806291|EXF,PRL,SVC
000000474396-000012116499|BAM,CMZ,EXF,IKA,PRL,SVC 

*This process is owned and Maintained by Data Engineering team (developed by -Chris Del Bene)

Note: 

  1. Active publication means circulation_status = Active (CIRSUB_M.CRC_STS = R or P or Q or W or G). This does not consider the email status in the cirsub table.  

  2. The dup consolidation is handled as -

    1. A new row will be added in the next file (for the survivor customer with the same pub codes as victim's) 

    2. The row with victim customer_id will have active_pub as empty

    3. This will remove the attribute from victim record and will add the pubs to the survivor record

Feature description:

Under a Blueshift customer profile there will be a custom attribute called active_subscriptions that stores all the active subscriptions a customer has for that affiliate/org if they have any. 



Segment Sample

The screenshot from above indicates that the customer has 29 active subscriptions with Banyan Hill since the user profile is under this account. 

Use cases:

  • Dynamically display content in a single template based on the active subscription(s) a customer has

  • Use user level data (active_publications attribute) in the trigger filters of one time campaigns instead of using transaction data in segment triggered campaigns. In one time campaigns you can only use the triggering transaction data. So if the segment in the campaign uses a free list transaction then only free list transaction data will be available to filter by. One time campaigns do allow for seed lists to be added while segment triggered campaigns do not



The screenshot below shows an example of how to achieve the use case from the first bullet:









com.atlassian.confluence.content.render.xhtml.migration.exceptions.UnknownMacroMigrationException: The macro 'html-macro' is unknown.