Website: set historical event source (#50546)
Changes: - Updated the website's createHistoricalEvent helper to accept an eventSource input that is used to set the historical event source on created records. - Updated places where we create historical events to set a historical event source - Updated the accepted contact sources values in the receive-from-clay webhook - Updated the deliver-gitops-workshop-request action to log a warning when a campaign member record cannot be created <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Improvements** - Improved activity tracking for newsletter subscriptions, signups, contact forms, workshop requests, webinars, gated content, and page views. - Added clearer source details to records for more accurate attribution. - Expanded support for website, webinar, event, LinkedIn, prospecting, and GitHub activity sources. - **Bug Fixes** - Workshop requests now continue successfully if campaign updates encounter an error. - Corrected warning messages and preserved relevant submission details for troubleshooting. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
@@ -68,6 +68,7 @@ module.exports = {
|
||||
eventType: 'Intent signal',
|
||||
intentSignal: 'Subscribed to the Fleet newsletter',
|
||||
relatedCampaign: recordDetails.mostRecentCampaign,
|
||||
eventSource: 'Website - Newsletter',
|
||||
});
|
||||
}).exec((err)=>{// Use .exec() to run the salesforce helpers in the background.
|
||||
if(err) {
|
||||
|
||||
+2
-1
@@ -84,7 +84,7 @@ module.exports = {
|
||||
emailAddress: this.req.me.emailAddress,
|
||||
firstName: this.req.me.firstName,
|
||||
lastName: this.req.me.lastName,
|
||||
contactSource: 'Website - Contact forms',
|
||||
contactSource: 'Website - Sign up',
|
||||
description: descriptionForContactUpdate,
|
||||
marketingAttributionCookie: attributionCookieOrUndefined,
|
||||
numberOfHostsDetails: inputs,
|
||||
@@ -104,6 +104,7 @@ module.exports = {
|
||||
intentSignal: 'Created a quote for a self-service Fleet Premium license',
|
||||
eventContent: descriptionForContactUpdate,
|
||||
relatedCampaign: recordDetails.mostRecentCampaign,
|
||||
eventSource: 'Website - Sign up',
|
||||
}).intercept((err)=>{
|
||||
return new Error(`Could not create an historical event. Full error: ${require('util').inspect(err)}`);
|
||||
});
|
||||
|
||||
@@ -121,6 +121,7 @@ Fleet Premium subscription details:
|
||||
intentSignal: 'Submitted the "Send a message" form',
|
||||
eventContent: message,
|
||||
relatedCampaign: recordDetails.mostRecentCampaign,
|
||||
eventSource: 'Website - Contact forms',
|
||||
}).intercept((err)=>{
|
||||
return new Error(`Could not create an historical event. Full error: ${require('util').inspect(err)}`);
|
||||
});
|
||||
|
||||
@@ -85,6 +85,8 @@ module.exports = {
|
||||
await sails.helpers.salesforce.createCampaignMember.with({
|
||||
salesforceContactId: recordDetails.salesforceContactId,
|
||||
salesforceCampaignId: '701UG00000bLCLpYAO',// 2026_01-FE-GitOps_Workshop_Interest Campaign
|
||||
}).tolerate((err)=>{
|
||||
sails.log.warn(`When a user (${firstName} ${lastName}, email: ${emailAddress}) submitted the GitOps workshop request form, an error occurred when adding this user to a Salesforce campaign. Full error: ${require('util').inspect(err)}`);
|
||||
});
|
||||
|
||||
if(!recordDetails.salesforceAccountId) {
|
||||
@@ -98,12 +100,13 @@ module.exports = {
|
||||
intentSignal: 'Submitted the "GitOps workshop request" form',
|
||||
eventContent: descriptionForCrmUpdate,
|
||||
relatedCampaign: recordDetails.mostRecentCampaign,
|
||||
eventSource: 'Website - Workshop request',
|
||||
}).intercept((err)=>{
|
||||
return new Error(`Could not create an historical event. Full error: ${require('util').inspect(err)}`);
|
||||
});
|
||||
|
||||
}).tolerate((err)=>{
|
||||
sails.log.warn(`When a user (${firstName} ${lastName}, email: ${emailAddress}) submitted the gitops workshop request form, an error occured when updating CRM records for this user.\n Submission information: ${descriptionForCrmUpdate.split('Submission information:')[1]}\n Full error: ${require('util').inspect(err)}`);
|
||||
sails.log.warn(`When a user (${firstName} ${lastName}, email: ${emailAddress}) submitted the gitops workshop request form, an error occurred when updating CRM records for this user.\n Submission information: ${descriptionForCrmUpdate.split('Submission information:')[1]}\n Full error: ${require('util').inspect(err)}`);
|
||||
});
|
||||
|
||||
|
||||
|
||||
@@ -58,6 +58,7 @@ module.exports = {
|
||||
eventType: 'Intent signal',
|
||||
intentSignal: 'Requested webinar recording',
|
||||
eventContent: webinarName,
|
||||
eventSource: 'Website - Gated video',
|
||||
}).intercept((err)=>{
|
||||
return new Error(`Could not create an historical event. Full error: ${require('util').inspect(err)}`);
|
||||
});
|
||||
|
||||
@@ -59,6 +59,7 @@ module.exports = {
|
||||
intentSignal: 'Requested whitepaper download',
|
||||
eventContent: whitepaperName,
|
||||
relatedCampaign: recordDetails.mostRecentCampaign,
|
||||
eventSource: 'Website - Gated document',
|
||||
}).intercept((err)=>{
|
||||
return new Error(`Could not create an historical event. Full error: ${require('util').inspect(err)}`);
|
||||
});
|
||||
|
||||
+1
@@ -246,6 +246,7 @@ the account verification message.)`,
|
||||
eventType: 'Intent signal',
|
||||
intentSignal: 'Signed up for a fleetdm.com account',
|
||||
relatedCampaign: recordDetails.mostRecentCampaign,
|
||||
eventSource: 'Website - Sign up',
|
||||
}).intercept((err)=>{
|
||||
return new Error(`Could not create an historical event. Full error: ${require('util').inspect(err)}`);
|
||||
});
|
||||
|
||||
+20
-7
@@ -32,19 +32,31 @@ module.exports = {
|
||||
type: 'string',
|
||||
required: true,
|
||||
isIn: [
|
||||
'Website - Contact forms',
|
||||
'Website - Sign up',
|
||||
'Website - Newsletter',
|
||||
'Website - Swag request',
|
||||
'Attended a call with Fleet',
|
||||
'Event',
|
||||
'Event - 2026-07 PSU MacAdmins',
|
||||
'GitHub - Stared fleetdm/fleet',
|
||||
'GitHub - Forked fleetdm/fleet',
|
||||
'Event - Webinar',
|
||||
'Event - Workshop - GitOps',
|
||||
'GitHub - Contributed to fleetdm/fleet',
|
||||
'GitHub - Forked fleetdm/fleet',
|
||||
'GitHub - Stared fleetdm/fleet',
|
||||
'LinkedIn - Comment',
|
||||
'LinkedIn - Liked the LinkedIn company page',
|
||||
'LinkedIn - Reaction',
|
||||
'LinkedIn - Share',
|
||||
'LinkedIn - Liked the LinkedIn company page',
|
||||
'Prospecting - AE',
|
||||
'Prospecting - Meeting service',
|
||||
'Prospecting - Specialist',
|
||||
'Website - Chat',
|
||||
'Website - Contact forms',
|
||||
'Website - Contact forms - Demo',
|
||||
'Website - Contact forms - Demo - ICP',
|
||||
'Website - Gated document',
|
||||
'Website - Gated video',
|
||||
'Website - Newsletter',
|
||||
'Website - Sign up',
|
||||
'Website - Swag request',
|
||||
'Website - Workshop request'
|
||||
],
|
||||
},
|
||||
jobTitle: {
|
||||
@@ -153,6 +165,7 @@ module.exports = {
|
||||
eventContentUrl: historicalContentUrl,
|
||||
linkedinUrl: trimmedLinkedinUrl,
|
||||
relatedCampaign: relatedCampaign || recordDetails.mostRecentCampaign,
|
||||
eventSource: contactSource,
|
||||
})
|
||||
.intercept((err)=>{
|
||||
sails.log.warn(`When the receive-from-clay webhook received information about LinkedIn activity, a historical event record could not be created. Full error: ${require('util').inspect(err)}`);
|
||||
|
||||
+33
-2
@@ -81,6 +81,36 @@ module.exports = {
|
||||
},
|
||||
relatedCampaign: {
|
||||
type: 'string',
|
||||
},
|
||||
eventSource: {
|
||||
type: 'string',
|
||||
isIn: [
|
||||
'Attended a call with Fleet',
|
||||
'Event',
|
||||
'Event - 2026-07 PSU MacAdmins',
|
||||
'Event - Webinar',
|
||||
'Event - Workshop - GitOps',
|
||||
'GitHub - Contributed to fleetdm/fleet',
|
||||
'GitHub - Forked fleetdm/fleet',
|
||||
'GitHub - Stared fleetdm/fleet',
|
||||
'LinkedIn - Comment',
|
||||
'LinkedIn - Liked the LinkedIn company page',
|
||||
'LinkedIn - Reaction',
|
||||
'LinkedIn - Share',
|
||||
'Prospecting - AE',
|
||||
'Prospecting - Meeting service',
|
||||
'Prospecting - Specialist',
|
||||
'Website - Chat',
|
||||
'Website - Contact forms',
|
||||
'Website - Contact forms - Demo',
|
||||
'Website - Contact forms - Demo - ICP',
|
||||
'Website - Gated document',
|
||||
'Website - Gated video',
|
||||
'Website - Newsletter',
|
||||
'Website - Sign up',
|
||||
'Website - Swag request',
|
||||
'Website - Workshop request'
|
||||
],
|
||||
}
|
||||
},
|
||||
|
||||
@@ -96,7 +126,7 @@ module.exports = {
|
||||
},
|
||||
|
||||
|
||||
fn: async function ({ salesforceAccountId, salesforceContactId, eventType, linkedinUrl, intentSignal, eventContent, eventContentUrl, fleetWebsitePageUrl, websiteVisitReason, relatedCampaign}) {
|
||||
fn: async function ({ salesforceAccountId, salesforceContactId, eventType, linkedinUrl, intentSignal, eventContent, eventContentUrl, fleetWebsitePageUrl, websiteVisitReason, relatedCampaign, eventSource}) {
|
||||
// Return undefined if we're not running in a production environment.
|
||||
if(sails.config.environment !== 'production') {
|
||||
sails.log.verbose('Skipping Salesforce integration...');
|
||||
@@ -148,7 +178,8 @@ module.exports = {
|
||||
|
||||
Page_URL__c: fleetWebsitePageUrl,// eslint-disable-line camelcase
|
||||
Website_visit_reason__c: websiteVisitReason,// eslint-disable-line camelcase
|
||||
Related_campaign__c: relatedCampaign// eslint-disable-line camelcase
|
||||
Related_campaign__c: relatedCampaign,// eslint-disable-line camelcase
|
||||
Historical_event_source__c: eventSource// eslint-disable-line camelcase
|
||||
});
|
||||
}).intercept((err)=>{
|
||||
return new Error(`An error occured when creating a new Historical event record in Salesforce. full error ${require('util').inspect(err, {depth: null})}`);
|
||||
|
||||
@@ -41,6 +41,8 @@ module.exports = {
|
||||
'Attended a call with Fleet',
|
||||
'Event',
|
||||
'Event - 2026-07 PSU MacAdmins',
|
||||
'Event - Webinar',
|
||||
'Event - Workshop - GitOps',
|
||||
'GitHub - Contributed to fleetdm/fleet',
|
||||
'GitHub - Forked fleetdm/fleet',
|
||||
'GitHub - Stared fleetdm/fleet',
|
||||
@@ -53,14 +55,14 @@ module.exports = {
|
||||
'Prospecting - Specialist',
|
||||
'Website - Chat',
|
||||
'Website - Contact forms',
|
||||
'Website - Contact forms - Demo - ICP',
|
||||
'Website - Contact forms - Demo',
|
||||
'Website - Workshop request',
|
||||
'Website - Contact forms - Demo - ICP',
|
||||
'Website - Gated document',
|
||||
'Website - Gated video',
|
||||
'Website - Newsletter',
|
||||
'Website - Sign up',
|
||||
'Website - Swag request',
|
||||
'Website - Gated document',
|
||||
'Website - Gated video',
|
||||
'Website - Workshop request'
|
||||
],
|
||||
},
|
||||
getStartedResponses: {
|
||||
@@ -208,8 +210,8 @@ module.exports = {
|
||||
'Website - Contact forms - Demo - ICP',
|
||||
'Website - Contact forms - Demo',
|
||||
'Website - Workshop request',
|
||||
'Webinar',
|
||||
'Website - Gated document',
|
||||
'Website - Gated video',
|
||||
];
|
||||
if(contactSource && formBasedContactSources.includes(contactSource)) {
|
||||
contactValuesToSet.Most_recent_campaign_member_status__c = 'Registered';// eslint-disable-line camelcase
|
||||
|
||||
Vendored
+1
@@ -402,6 +402,7 @@ will be disabled and/or hidden in the UI.
|
||||
eventType: 'Website page view',
|
||||
websiteVisitReason: websiteVisitReason,
|
||||
relatedCampaign: recordDetails.mostRecentCampaign,
|
||||
eventSource: 'Website - Sign up',
|
||||
}).intercept((err)=>{
|
||||
return new Error(`Could not create new Fleet website page view record. Error: ${err}`);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user