LuxSci functional guide
Overview
The following guide provides information about the capabilities of LuxSci within Redpoint Interaction (RPI), how sending emails/synchronizing state data works, and links to other resources.
Key capabilities
The LuxSci connector provides the following key capabilities:
Channel Configuration
The ability to send emails via an Interaction using an Offer Activity and Queue Listener
Receiving state/disposition data via the Channel Synchronization Task
Using state/disposition data as inputs to additional workflows and downstream activities
Unique features
The LuxSci connector supports the following features:
Ability to send secure messages
Ideal platform to use for Queue Listeners as they support timely delivery of emails
Support for BCC within the channel configuration
Various channel configuration options to optimize performance for outbound and inbound processing
The ability to inspect Mail Merge files for auditing purposes
The ability to support custom headers at the channel level
The ability to import email reports using bulk method
Process flow
The following flow chart shows how the LuxSci channel works within both outbound fulfillment and inbound state synchronization.
Outbound processing
Inbound processing
Outbound fulfillment
The LuxSci connector performs the following steps when it is used as part of an outbound Offer Activity:
Step # | Step Description | API |
---|---|---|
1 | Initiate a connectivity test to validate the credentials configured in the channel are valid. | Method: Endpoint: Request Body:
JSON
Response Body:
JSON
Method: Endpoint: Response Body:
JSON
|
2 | If the channel is configured to auto-suppress unsubscribes, RPI will query the suppression email table to identify and suppress any matching email addresses before generating the mail merge files. | N/A |
3 | Create LuxSci template. | Method: Endpoint: Request Body:
JSON
|
4 | Use the Razor templating engine to render personalization and dynamic content to create the mail merge files. | N/A |
5 | Files are batched based on the unique sets of content across HTML, Text, and Subject Line assets. AND Each batch file includes up to 1000 recipients, per the max allowed by LuxSci. | N/A |
6 | RPI will loop through each of the files and initiate the send to LuxSci. In cases where one or more batches failed to send, the workflow can be replayed again to pick up failed batches and retry to send the emails. Email events are tracked by using header
| Method: Endpoint: Request Body:
JSON
Response Body:
JSON
|
7 | RPI will save the tracking id to table. Tracking ID format: Table: | N/A |
8 | Delete LuxSci template. If running queue listener, templates are persisted and deleted only once workflow is rolled back or Template retention period has elapsed as part of the housekeeping task. | Method: Endpoint: Response Body:
JSON
|
9 | Once the sends are complete, the Interaction Log is updated with the total number of batch files that processed successfully/failed. | N/A |
State data synchronization
Inbound process:
Step # | Step Description | API |
---|---|---|
1 | If Import via file is checked, download email report for each event as follows:
| Sent Request Method: Endpoint: Response Body:
JSON
Delivered Request Method: Endpoint: Response Body:
JSON
Opened Request Method: Endpoint: Response Body:
CODE
Clicks Request Method: Endpoint: Response Body:
JSON
Feedback Loop Request Method: Endpoint: Response Body: |
2 | RPI will create a request export job to LuxSci. After LuxSci generates the report, it uploads them to the specified Report destination. LuxSci currently supports SFTP as the Report destination. | Method: Endpoint: Response Body:
JSON
|
3 | RPI will create a request which monitors the export job. It checks whether the jobs status is completed or failed. If the “max jobs” is already at the limit, RPI will wait 60 seconds to check again if there are available job slots to make the request. Job request will fail if the number of retries has reached the limit as imposed by Async report retry in the channel config. | Method: Endpoint: Response Body:
JSON
|
4 | After the export job has completed, RPI will download the LuxSci generated email report from the Report destination to the configure State results folder path. | N/A |
5 | Once the report is downloaded, RPI will delete the file in the Report destination. | N/A |
6 | Run a Redpoint Data Management (RPDM) job located in this path | N/A |
7 | If the RPDM job has completed, delete the used files in the State results folder path. During this process, any report files older than 7 seven days are also deleted. | N/A |
8 | Email events are inserted to Offer History State table. If | N/A |
9 |
| N/A |
10 | Email suppression list from LuxSci is downloaded and inserted into the suppression table. | Method: Endpoint: Response Body:
JSON
|
11 | Update the state and metrics count. | N/A |
LuxSci configuration
The following section provides the pre-requisite steps for configuring LuxSci to work with RPI.
To create tracking header:
Step # | Description |
---|---|
1 | In a web browser, navigate and login to https://luxsci.com/perl/member/login.pl?settheme=1 |
2 | Navigate to Administration Home > Admin Settings > Outbound Email > Settings. |
3 | Under Account Settings - Email panel, scroll down to SMTP Header Tracking and add |
4 | Click Save Changes. |
Performance testing
Test environment
Performance testing was last performed in August 2023 using the environment below:
Redpoint Interaction
2 VMs with 8 cores and 32GB of memory
2 nodes
Azure SQLDB elastic pool instance for the marketing and ops database
Redpoint Data Management
1 VM with 4 cores and 16GB or memory
Snowflake
Snowflake Client (v7.28)
Snowflake ODBC driver (3.00.02.00)
LuxSci
Server Name: rs7392.luxsci.com (API Server)
Server Type: Oracle Cloud
Public IP: 129.146.161.64
Private/Local IP: 10.10.0.102
CPU: 4 cores
RAM: 16 GB
Operating System: Linux v8.7 64bit
LuxSci Software: v23.1.3
Apache: v2.4.54PHP: v8.0.26
MariaDB: v10.4.27
ProFTPd: v1.3.7f
ClamAV: v1.0.0
OpenSSL: v1.1.1sServer Name: rs7393.luxsci.com (SMTP Server)
Server Type: Oracle Cloud
Public IP: 162.142.76.112
Private/Local IP: 10.10.1.113
CPU: 2 cores
RAM: 16 GB
Operating System: Linux v8.7 64bit
LuxSci Software: v23.1.3
MariaDB: v10.4.27
ClamAV: v1.0.0OpenSSL: v1.1.1s
Volume test results
The Contact Personalization reflects the time to create the batch within Redpoint Interaction on an environment scaled as indicated above. The Luxsci Batch Upload time reflects the time to process the batch within the vendor (outside of Redpoint Global) and will vary based upon your subscription with Luxsci. Testing was done on their shared testing instance, which should be slower than your private testing instance.
Batch sends
Batch Sends | Contact Personalization (RPI Processing) | Luxsci Batch Upload (Luxsci Processing) | Total Workflow Execution |
---|---|---|---|
1M | 34m35s | 1h43m44s | 2h20m53s |
2M | 1h4m12s | 3h22m11s | 4h29m17s |
3.5M | 2h1m45s | 6h15m48s | 8h21m5s |
5M | 2h56m19s | 9h39m30s | 12h39m57s |
Concurrent sends
Concurrent workflow running (batch size) | Earliest start time | Earliest end time | Total offer execution |
---|---|---|---|
20 (50K) | 23:25:09 | 01:11:27 | 1h46m18s |
20 (150K) | 13:56:05 | 21:23:12 | 7h27m7s |
Inbound processing
Number of Events (data processed) | Channel Synch Execution |
---|---|
50K | 1M10s |
500K | 20M17s |
1M | 23M41S |
Limitations
Limitation # | Limitation Detail |
---|---|
1 | The API does not support the option to create 'View as Web Page' links that mirror the email content |
2 | The ability to schedule a delivery is not supported by their API |
3 | The use of social elements including Facebook Like Image and Facebook Like Share buttons are not supported |
4 | The 'Forward-to-Friend' option is not supported |
5 | The use of content sharing for Facebook and Twitter is not supported |
Logging
Below is an example of the Interaction log for an offer using the LuxSci channel:
Log | Log Entry Description |
---|---|
2023/07/18 23:34:46 Fulfillment Action complete | Batch Total: 1 Batch Success: 1 Batch Failed: 0 = the total number of batch files that was successful vs failed Processed XX of XX batch files = the number of batch files that was processed to send emails Merge contact data completed. XX = the number of recipients to send emails Deleting template 330814 = Initiates delete of template Message tracking ID save to database: 2790_2790_21f174d0fe8442a9acf096bbd437276c = the tracking ID that was successfully saved in the tracking table <FileOutputDirectory>\WFAI2748\Offer 2 2 2\New LuxSci Channel 2 1\RPI_2790_2790_21f_238\process = The location where batch files are located Other messages: Invalid seed email(s): XX = the number of seeds with invalid email address Merge seed data completed: XX = the number of seeds to send emails |
Common Questions
Q | “Invalid seed email(s)” are reported even if the email addresses are valid. |
A | Make sure that the attribute used as Recipient email in channel admin or Recipient Email Attribute Override in email offer is present as one of the seed attributes. |
Q | Metrics are missing when executing Queue Listener using Snowflake DB. |
A | Using uppercase or mixed case as email address when executing Queue Listener will result to missing metrics when using Snowflake DB because it compares string as case sensitive. Make sure to use lowercase email address when executing QL in Snowflake DB. |
Q | Which error codes are retry-able? |
A |
|
Q | What is the current re-try strategy employed if API requests to LuxSci fail? |
A | If API request fails, LuxSci connector employed Exponential Backoff re-try strategy. |
Q | Do we enforce any specific encoding on any of our asset types? |
A | No |
Q | What specific encoding do we use when communicating with LuxSci? |
A |
|