Hi everyone.
We have a lead scoring model set up which, in general, is working really well. However, we saw an issue arise the other day. For context, we -50 points for leads whose company doesn't meet a certain revenue threshold or if that threshold is null.
Our new lead got created and then our lead scoring model kicked in before our lead enrichment tool could populate the revenue figures. Our lead obviously then got negative scored and then abandoned and a hot lead wasn't routed correctly.
My question is, wouldn't it make more sense to have a lead scoring program fire on a campaign request trigger as opposed to a person created trigger? This would let our data enrichment tool go about it's business and once it's finished, THEN send the lead over for lead scoring?
Any input would be greatly appreciated
Solved! Go to Solution.
Marketo’s executable campaign targets exactly this use-case, I.e., the use case where synchronous execution is a necessity. You can create a trigger campaign to process new people getting created and add flow steps in the campaign flow to execute the necessary steps before executing your scoring campaigns using executable campaigns.
Note that you can’t use Call Webhook / Wait steps in an executable campaign’s flow and also cannot use triggers in its smart list. If this is a requirement for your case, you can use the Request Campaign step to request your scoring campaigns post the enrichment flow which I'm assuming would most likely be triggered by a webhook call. Additionally, you can add an apt wait step before requesting your scoring campaigns after the webhook call flow step such that it’s sufficient (at least in most cases) for the enrichment activity to complete (or better use a Data Value Change trigger to trigger your scoring campaign flow). FYI, unlike the executable campaign, the request-able trigger campaigns don't guarantee the synchronous flow of steps in the parent campaign. You could also create a rinse-and-repeat to process people whose scoring fields change once they have already passed through the scoring flow. You reset their score to 0 and then pass them through the scoring flow so their score gets adjusted.
Marketo’s executable campaign targets exactly this use-case, I.e., the use case where synchronous execution is a necessity. You can create a trigger campaign to process new people getting created and add flow steps in the campaign flow to execute the necessary steps before executing your scoring campaigns using executable campaigns.
Note that you can’t use Call Webhook / Wait steps in an executable campaign’s flow and also cannot use triggers in its smart list. If this is a requirement for your case, you can use the Request Campaign step to request your scoring campaigns post the enrichment flow which I'm assuming would most likely be triggered by a webhook call. Additionally, you can add an apt wait step before requesting your scoring campaigns after the webhook call flow step such that it’s sufficient (at least in most cases) for the enrichment activity to complete (or better use a Data Value Change trigger to trigger your scoring campaign flow). FYI, unlike the executable campaign, the request-able trigger campaigns don't guarantee the synchronous flow of steps in the parent campaign. You could also create a rinse-and-repeat to process people whose scoring fields change once they have already passed through the scoring flow. You reset their score to 0 and then pass them through the scoring flow so their score gets adjusted.
Great to hear we're on the same page!
We call a webhook to enrich the data so I'm thinking the following flow:
lead is created > webhook is called > wait (x minutes) > request firmographic scoring campaign
We found that the firmographic scoring campaign was sometimes happening before the webhook was called therefore it was scoring on incomplete data hence the low scores.
Thanks for your input!
Cool! To add some color, webhook calls are not asynchronous, it's the data updates that happen based on the response received from the webhook call is rather. The HTTP request is synchronous. While the wait step is not the most robust solution, you can certainly use the Data Value Changes (DVC) trigger for your demographic fields for this. You can add the reason constraint to the trigger with the value: "Webhook Updated Person: [webhookname]" in case you want only people who were updated by the enrichments webhook call to pass through your scoring campaign flow. I feel DVC trigger is a bit more robust than using wait steps that may not be sufficient in case the updates are delayed beyond your wait duration.
Echoing Darshil: do not use an arbitrary Wait step. There’s no amount of time which is guaranteed to be enough in all cases, and in other cases you’ll be unnecessarily slowing down processing.
You want an event-driven system.
You can use a trigger on Webhook is Called or on Data Value Changes.