About Cross Session Contact Tracking

A contact event is posted to Interact after an offer is presented to an end user. Currently, it is assumed that the end user acts as soon as the offer is presented. Thus, the contact event must be posted within the same Interact session as the getOffers API request that returns the original offer. However, there are many scenarios where contact events occur in a different session.

Since, posting a contact event requires the session data and personalized offer attributes, the required data must be kept in the system after getOffers. Due to the limitation of storage, cross session contact events can be handled only within a limited period of time after getOffers.

How does Cross Session Contact works?

  • When a contact event is posted without a treatment code or an offer code, all the treatments returned in the previous getOffers invocation are logged and are always stored in the current session object. Interact searches for the matching treatment amongst the available treatments returned in the previous getOffers invocation.
  • If no treatment is found in the session object and cross session contact tracking is enabled, Interact searches and loads the matching treatment in the configured data store.
  • If no contact type is specified or the specified contact type is defined as a true contact event, this event is sent to the learning engine and the offer suppression rules are updated, if applicable.
  • An error is returned, when no treatment is found.

Database and schema change

The following table is added in the runtime database. It contains the personalized treatments delivered to the customers through the getOffers API calls or outbound calls. This table is required for each audience level.

Table 1. UACI Treatment.
Column DataType Description
SeqNum number The internal ID of this treatment.
TreatmentCode varchar The treatment code of this personalized treatment.
OfferID number The ID of the offer from where this treatment is derived.
OfferCode varchar The code of the offer from where this treatment is derived. If the offer code has multiple parts, all parts are concatenated into a single comma separated string. If the total length of offer codes are long, the size of this column may require to be increased.
PresentDate timestamp The timestamp when this personalized treatment was delivered.
IPName varchar The name of the interaction point created for this treatment. If there is no associated interaction point, such as few triggered message cases, the value of this field is null.
CustomerID number The audience ID, when the audience level is "Customer". If the audience level is not "Customer", this column must be replaced with the corresponding audience ID fields.
Contacted number This specifies whether a contact event is posted to this treatment. If this treatment is contacted, it returns a value '1' and if not contacted, it returns a different value.
Details varchar This specifies the information associated to this personalized treatment, such as the session parameters and profile attributes required for the corresponding CH/RH staging tables and the personalized offer attributes.