1. No fallback: display relevant info in the checkout process
1. No fallback: display relevant info in the checkout process
This is the case where no fail-safe for contact-handling exists. However, the purchase process must always proceed. Here are a few suggestions for when a connection fail happens.Notifying customers that the loyalty program is down using messages/alerts:”There were problems handling your member/customer data. You can proceed with your purchase but will not be able to use your individual member/customer offers. This purchase will also not generate reward points due to this issue. We regret the inconvenience. Contact Customer service for more info.”Apply loyalty offers to allAs an apologetic gesture you could open up general customer/member offers to all.
2. External ID: possibility to add contact to transaction
2. External ID: possibility to add contact to transaction
In order to be able to tag transactions with a contact ID even though there is no communication with Engage, a secondary integration key should be implemented.Normally we recommend that transactions are tagged with a contact ID: not personal information, such as a mobile phone number, but rather an Engage contact ID or a generic member number. Then the POS or e-com must always take that public identifier (such as a mobile phone number or a social security number in Sweden) and check using the API which integration key should be used.Our recommendation is to use one or more of the public identifiers, such as a mobile phone number or email address as a secondary integration key, that is, to tag the mobilePhone to the transaction instead of the primary integration key. This is then matched as mobilePhone data in Engage.Example using primary integration key, in this case “memberNumber”:Example using secondary integration key, in this case “mobilePhone”:
It is critical, as a GDPR compliance, that the integrator deletes all local logging and temporary storing of this integration data when it contains personal information. Engage flushes integration logs and files after a certain time and the integrator should too.
3. Read contact: a local database with incremental sync
3. Read contact: a local database with incremental sync
In this case, a reasonably fresh copy of Engage’s contact database resides locally in the e-com platform and/or POS. This is obtained via a primary data download from Engage and incremental delta import via Engage’s contact export XML. This export can be as complex as it needs to be, either:
- A small database that just allows the integration key to be tagged to a transaction
- A database containing fully-fledged contact objects
4. Read and write contact: a local database with full duplex incremental sync
4. Read and write contact: a local database with full duplex incremental sync
In addition to this it is possible to create and change contacts locally and sync them incrementally to Engage. The data is obtained via delta export from Engage via XML import.In this case the integration key can’t be the Engage internal contact ID. Instead it will be a number sequence created by the integrator’s environment when it creates new contacts or some secondary integration key used specifically for this situation.To write all local contact changes to Engage in a single API call, use the bulk write contacts API endpoint.