call_api.js
// Event filter
const eventFilter = { event: 'Submitted Demo Form' };
const pardot_url = 'https://go.pardot.com/l/12345/2018-01-01/1234';
const submitEvent = _.find(events, eventFilter);
const sendToPardot = payload =>
new Promise((resolve, reject) => {
request({ url: pardot_url, form: payload }, (err, resp) => {
if (err) {
return reject(err);
}
hull.traits({ demo_sent: true }, { source: 'pardot' });
resolve(resp);
});
});
const {
pardot = {},
traits = {},
name,
first_name = 'Unknown',
last_name = name,
email
} = user;
const {
email,
phone,
company,
lead_source,
} = traits;
if (submitEvent && !_.has(user, 'pardot.demo_sent')) {
const { name, company, phone } = submitEvent.properties || {};
return sendToPardot({
//Embed what we have from the user profile
email,
phone,
company,
lead_source,
first_name,
last_name,
...submitEvent.properties //embed all the Submit Event's properties. Overrrides the previous values if set
});
}