-
-
Save andreas-optimizely/8d16f772cd0b865fbb0c84f5ec8ded73 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
if (event.message && event.message.text) { | |
text = event.message.text | |
if (text.toLowerCase().includes('recommend')) { | |
// Generate random user ID | |
var userId = uuid(); | |
// Creates an array of the products from sample products/responses | |
var categories = Object.keys(recs.products); | |
var randomNumber = Math.floor(Math.random() * categories.length); | |
// Select a random category to respond with | |
var category = categories[randomNumber]; | |
// Uses global activate function defined on line 9 | |
var optimizelyVariation = optimizelyClient.activate('product_recs', userId); | |
// Gets response from sample response json given category + variation | |
var responseData = recs.products[category][optimizelyVariation]; | |
var products = responseData.attachment.payload.elements; | |
// Adds generated user ID to products for tracking if user clicks to buy | |
optimizelyVariation === "single_project" ? helpers.addUserId(userId, products) : helpers.addUserIdSingleProd(userId, products); | |
// Sends chatbot response | |
sendGenericMessage(sender, responseData); | |
continue | |
} | |
if (event.postback) { | |
// Fired when user clicks "Buy Now" | |
var payloadResponse = JSON.parse(event.postback.payload); | |
// Grabs userID from payload | |
var userId = payloadResponse.user; | |
// Builds receipt | |
var receipt = helpers.buildReceipt(payloadResponse); | |
// Track event to Optimizely | |
optlyClient.track('purchased', userId, {}, {revenue:receipt.attachment.payload.summary.total_cost * 100}); | |
// Send receipt | |
sendGenericMessage(sender, receipt); | |
continue | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment