Buyapowa
Integrate Buyapowa in Bloomreach Engagement using Omniconnect! Buyapowa allows customers to refer their friends with a unique referral link, which enables Bloomreach to capture the information of the referred “friend” to obtain a new customer.
This integration also properly assigns consent events to the friend if they have accepted marketing.
How to set it up
Prerequisites
- A Bloomreach Engagement project with integration access
- A Buyapowa account
- Contact with a Buyapowa Account Manager to apply the webhook URLs on their side
- Your project email identifier
1. Create the integration
- In Bloomreach Engagement, go to
Data & Assets > Integrations > +Add new integration
![](https://files.readme.io/cab1f4f-1.png)
- Find Omniconnect and click on
+ Add integration
- Rename the integration and click on
Save integration
- Go to the
Transformation
tab - Paste the transformation function and click on
Save changes
![](https://files.readme.io/d62ea66-2.png)
- Update the
email_id
parameter with the email identifier in your project.
![](https://files.readme.io/b887580-3.png)
2. Set up the webhook
- Go back to the
Settings
tab - Copy the Omniconnect URL
- Send the Omniconnect URL to the Buyapowa Account Manager
- Generate a test referral and follow the process through as the "friend"
3. Configure the transformation function
The transformation function contains 1 declared variable
- Update the
email_id
variable according to the email customer identifier in your project - Click on
Test transformation
and check the result
Transformation function
This function takes the input from Buyapowa’s webhook and generates the required events and customer properties.
Update the email_id
parameter with the email identifier in your project.
const email_id = "email_address"
/**
* Handler is the entry point for the function that enables the transformation of the data.
* @param data
* @returns {*}
*/
function handler(data) {
const batch_payload =
[ {
"name": "customers/events",
"data": {
"event_type": "buyapowa_friend_registration",
"customer_ids": {
email_id: data.friend.email
},
"timestamp": Math.round(Date.now()/1000),
"properties": {
"action": "register",
"voucher": data.friend.voucher.code
}
}
},{
"name": "customers",
"data": {
"customer_ids": {
email_id: data.friend.email
},
"properties": {
"email": data.friend.email,
"first_name": data.friend.first_name,
"last_name": data.friend.last_name
},
"update_timestamp": Math.round(Date.now()/1000)
}
}]
if(data.friend.marketing_opt_in) {
batch_payload.push({
"name": "customers/events",
"data": {
"event_type": "consent",
"customer_ids": {
email_id: data.friend.email
},
"timestamp": Math.round(Date.now()/1000),
"properties": {
"action": "accept",
"category": "newsletter",
"valid_until": "unlimited"
}
}})
}
return batch_payload;
}
Troubleshooting
- If the data doesn’t appear against a customer profile, make sure that
email_id
is set correctly - Ensure that you have followed the flow in Buyapowa from start to finish and that you’re using a new, unique link each time
- The link retains whether you’ve already submitted it
Updated about 2 months ago