Example Flow
Step-by-step Process Overview
A typical step-by-step submission process is shown below. You can modify this to meet your needs and user interface model or device. Not all of these steps will apply for every campaign or process. In many cases some steps will be skipped (for example if there is no product selection process or reward choice).
The example below shows obtaining the JWT auth token once, however, it is likely given the auth token TTL of 10 minutes you will need to obtain multiple tokens during the entire flow.
Submission Process
User visits the rebate website and enters a campaign code.
- Obtain a JWT auth token through the Auth Service using your client id and client secret.
- Call the read API in the Campaigns Service to pull the campaign details. Save all this information as you will need to reference it throughout the process.
- Display the campaign details to the user. Typically this would include the campaign code, offer name, start and end dates and terms and conditions.
User confirms this is the campaign they want to submit to and elects to continue.
- Display appropriate UI elements to collect campaign attributes for the campaign. Campaign attributes are non-demographic, non-product related attributes for the selected campaign that you will send as part of the submission. The campaign attributes available for the campaign can be found in the attributes object in the response from the read API in the campaign service you called in step 2.
User provides campaign attribute information
- Save the values provided for the campaign attributes by the user so you can use them when creating the submission in step 20.
- Ask the user to upload proof of purchase images and present an appropriate UI to allow them to do so.
User uploads proof of purchase images
- Use the create API in the Files Service to upload the proof of purchase images to Blackhawk Network. Save the image names that are returned as you will need to use them when creating the submission in step 20.
- Call the rewards API in the Campaign Service to retrieve the available ClickChoice® reward options for the campaign. The
attributeValue
attribute value will need to be provided when creating a submission. - Present the reward options to the user.
User selects which reward they would like to receive
- Save the attributeValue for the reward option the user selected so that you can use it when creating the submission in step 20.
- Present a user interface asking the user to select the product they purchased. The available products for the campaign can be found in the products object in the response from the Campaign Service read API in the campaign service you called in step 2.
- Collect any required product purchase attributes.
User selects a product and supplies all required product information.
- Save products selected and product attributes values provided by the user to use when creating the submission.
- Present a user interface to collect the user's demographic information (name, address, city, state, zip, phone number and email address).
User provides demographic information
- Perform front end validation on these fields and ask the user to correct any information that does not match the requirement. Validation requirements, including regular expressions, can be found in the Demographic Fields Reference.
- Call the verifyusaddress API with the demographic information provided by the user.
- Present an appropriate user interface showing the original address and recommended cleansed address to the user to select from.
User selects which address to use.
- Save the demographic information to use when creating the submission.
- Present a review page to the user showing everything they have entered and giving them one last chance to update their information.
User confirms the information is correct (or chooses to edit information and then comes back and confirms).
- Call the Submission Service create API to create a new submission in the campaign for the user.
- If successful a tracking number will be returned. Provide this tracking number back to the user as confirmation the submission was completed successfully.
Updated over 4 years ago