susom / redcap-em-giftcard-reward

An EM to help automate the reward of gift cards for survey and other participation
MIT License
3 stars 1 forks source link
redcap redcap-external-module redcap-repo

Gift Card Rewards External Module

This module will automate the dispersement of gift cards for use in projects offering incentive rewards.

This module requires two REDCap projects: 1) the project where study data is stored (study project), and 2) a gift card library repository project where gift cards are loaded for dispersement (library project). These two projects work in tandem to disperse gift cards at the proper time as specified by logic in the configuration file. The gift card library project can be used for more than one gift card study project.

The module must be enabled for the study project (not the gift card library).

Background

Many research studies offer incentives to participants, in the form of gift cards, at different time points. Tracking and distribution of the gift cards can be a very time-consuming task, especially with remote participants. To help alleviate the burden of tracking eligible participants and facilitate distribution of the gift cards, this External Module was created. This module also helps with gift card reporting for study administration.

Overview

This EM allows multiple configurations (e.g. instances) to be setup to enable more than one different gift card event in a given project. Each configuration uses a logical expression to determine when a participant is eligible combined with the type and amount of the gift card to be sent.

There are several types of configurations which are supported as described below:

  1. When a participant is determined to be eligible for a reward, they will be sent a customizable email to let them know they received an award. The email contains a link which they must click through to view the gift card information (and redeem the gift). There is an option to send the actual giftcard information to an email address (either the one used for verification or another email).
  2. Gift cards can be filtered by Brands. Each participant may select the type of gift card they would like. In order to use this feature, the brand field needs to be specified in the EM config file. This would be used if you want to allow the participant to select, for example, from a target or an amazon gift card.
  3. Sending out gift cards normally happens in realtime when the logic determines a record to be eligible. However, if you would like, you can instead use a batch mode where the gift cards are sent in batch at a later time. In this mode, gift cards will NOT be sent when a record is saved, instead an EM webpage is provided so display the records that are eligible for an award. You are allowed to select which records you want to send gift cards to.
  4. Normally the eligibility logic is determined when the record is saved. There may be some situations where you need to evaluate the logic without a save event (such as when logic includes datediff or after a bulk import). You can evaluate logic against all records using a cron-task on a daily basis. For instance, this mode may useful when sending gift cards on birthdays. In the eligibility logic, you can set up a datediff to determine if today is the participant's birthday and if so, send out a gift card.
  5. The last mode can be used to support anonymous surveys. Since the email address of a participant is not known or desired to be saved in the project, you can select to have the URL to the gift card saved in the project and displayed to users after completing an anonymous survey.

How does it work?

This module is designed to evaluate configuration specific logic (based on REDCap field values) when a record is saved. When the logic becomes true, a reward is processed for the participant. The reward processing consists of looking for an available gift card in the library project, reserving that gift card in the library project and notifying the participant via email that they were awarded a gift card. The gift card library record gift card status will be set to 'Reserved' with a timestamp.

The configuration file specifies a gift card denomination to give for each timepoint and gift cards can be filtered by brand. The brand filter is performed by creating a radio button or drop down field in the study project to hold the brands available for distribution. The description of each radio selection must match the brand entered in the library project. The denomination amount entered in the External Module module configuration should only include the dollar amount and not the dollar sign (20 and not $20.00) in order to match the library project entry.

A few items of information are saved in the library project when a reward is distributed, such as, the name of the reward (which is specified in the study project External Module configuration), and the project id (in case more than 1 study project uses the same gift card library), record in the study project that is being awarded the reward and the email address where the gift card codes were sent.

The study project will save the 'Reserved' status of the gift card and the record of the library project which contains the reward being sent to this participant. Enough information is saved in the library and study projects to easily maneuver back and forth between the two projects.

Participant View

Once a participant reaches a reward milestone, they will receive an email with customizable text. At the bottom of the email a link to a webpage that will display their reward is inserted. This email text is specified in the External Module configuration file and can use piping for personalization.

Once the participant clicks on the email link, a webpage will be launched that contains their reward code. From this webpage, participants will be able to email that reward code to themselves (or someone else) so they have a copy of the code. The email address that is sent a copy of the reward code will be stored in the library project.

Features

This module is able to send multiple rewards per project. For instance, if your study grants a reward after filling out a Baseline Questionnaire, after Week 3 and at the end of the study, each of these reward timeframes can be setup in the gift card External Module configuration. There are no limits to the number of rewards one study project can gift. Each reward configuration must use the same library project.

Unless a project opts out, there is a daily summary that is sent to the Alert Email address which summarizes the status of the gift card dispersement for the previous day. If more than one configuration is setup for a study project, one email will be sent summarizing all configuration setups.

Some projects may want the ability to time limit the availability of the rewards. For instance, you can make the award valid for 7 days. After the time has elapsed, you can reset the reward so the participant loses the ability to see the reward information. This scenario can be accomplished when using gift codes (not links to gift codes) by resetting awards that are in 'Reserved' status back to 'Ready' status.

Setup

Gift Card Library Setup

The gift card library project must have the following fields: LibraryProject

There is an xml and csv template in Github which should be used for the library project. The gift card information, which is dispersed to participants, can be imported into the project from a csv file.

The gift card library project supports several statuses for each gift card record. When the information is entered into the library but is not yet ready to be sent, the status of 'Not Ready' can be used. When the gift cards are available to be used for the project, they are set in 'Ready' status. When a participant becomes eligible for a reward and is sent a reward email with a link to the reward, the status becomes 'Reserved'. When the link in the email is selected and the reward is displayed on a webpage, the status is 'Claimed'. In this case, the status of Claimed does not mean it was redeemed, it just means that the participant has the information to redeem the gift card.

The gift card library project supports sending participants the actual reward code so they can redeem the reward. It also supports entering a link to a third party website where they can redeem the reward. If the value entered in the [egift_number] field starts with 'http', then the value of the field will be setup as a link in the email so participants can click on the link to retrieve their reward from the 3rd party site. When using links, the redemption of the reward is outside of Redcap so the status of the reward will stay at 'Reserved' and will not change to 'Claimed'.

When the reward is an alphanumeric string, then Redcap will track when the user clicks on the link in the email and turns the status to 'Claimed'.

If a gift card was erroneously sent out, the gift card record can be reset to 'Ready' and the record can be re-used. The gift card can only be redeemed with a valid token so if the token is deleted, that gift card can no longer be 'Claimed'.

Uploading gift card rewards to the Library

To upload gift card rewards to the Library in bulk, the REDCap Data Import Tool can be used by following the steps below. Create a .csv file with the following headers: reward_id, brand, egift_number, challenge_code, amount, status

Project Configuration File

ExternalModule

Once the module is enabled for the gift card project, the External Module configuration file must be filled out.

ConfigurationFile

To setup a gift card configuration for a project, there are 4 main sections, described below.

Reward Library for all configurations

The Reward Library section requires you to enter information on the location of the library project. This project can be used for more than one gift card project but the same library project must be used for each reward configuration in the study project. Here is a brief overview of the settings:

Display Styling for Gift Card Reward Display for all configurations

The Display Styling section allows you to customize the page used to display the gift card codes used to redeem the card. You can change the header/footer colors, add a background image, add a logo or change the background text color of the box containing the reward codes. Here is a brief overview of the settings:

Reward Settings (section for each configuration)

There may be many configurations created if there are multiple rewards dispersed by this project. Each configuration requires information about the specific award. Here is a brief overview of the settings:

Email Settings (section for each configuration)

The Email Settings section specifies what text will be used to send the emails to participants. Here is a brief overview of the settings:

Notification Settings (section for each configuration)

The Notification Settings allow configuration control over when emails are sent. Here is a brief overview of the settings:

Reward Processing

Each time a record is saved in the Gift Card Project, a check will be performed to see if the participant is eligible for a reward. Once a participant is found eligible, the following steps will be performed:

Once the participant clicks on the link received in the rewards email, the reward display appears as follows:

RewardDisplay

Participants have the option to send themselves or someone else a copy of the reward number for future reference.

Cron Processing

There are 2 cron jobs running daily:

Gift Card Summary

The Summary cron job will send a daily update at 6am to the Alert Email address specified in the configuration file. The nightly summary displays the following data:

Nightly Summary

Logic Checker

The Logic Checker cron job will run at 9am each morning and look for the configurations who have the "Enable 9am cron job to check logic" checkbox enabled. Configurations should enable this cron logic checker only when they have a date component to their reward logic. This cron will ensure the reward is sent on the appropriate date even if the record is not saved on the day it is eligible.

Batch Processing

The Batch Processing webpage will display all records that are ready for a reward for each configuration that has selected batch processing. The user will be able to select the records that should receive the reward for each configuration.

Batch Processing

Internationalization

This module uses the Internationalization framework. There is an English.ini file which includes phrases used for displays.

NOTES:

Future Enhancements

- Add the ability for projects to download a standard Gift Card Library Template automatically