This content has been marked as final. Show 7 replies
You can always create smart lists that show leads based on which landing page the form was submitted on (or a smart campaign that adds leads to a static list every time a form is submitted on a particular web page). Just use the "filled out form" filter with the "web page" constraint.
A possibly cleaner way to do this in the future is to leverage hidden form fields to capture URL parameter info. The nice thing about this method is it allows you to use a single form and landing pages, yet track new leads from multiple sources. Just a thought. Here's a guide to that if you're interested.
I'm a fan of using separate programs to track this. For each advertising vehicle (we call them "tactics"), I'll setup a separate program. We actually created a unique channel for these tactic programs. The statuses aren't terribly important, we just use a single success status, and each of those programs has a smart campaign that looks for conversions. The trigger typically looks something like this:
Smart List: Fills out Form trigger
Web page = www.landingpage.com
Querystring CONTAINS utm_source=linkedin&utm_medium=cpc&utm_campaign=linkedinads
Flow Step: Change Program Status
Program = Webinar Program - LinkedIn Ads
New Status = Converted
We also created a custom object in our CRM (Salesforce.com) where we can build the master campaign, and we then create parent-child relationships between each of the tactic campaigns and the master campaign. This way, our program owners have one place in Salesforce where they can check on the success of each tactic.
Hope that makes sense. A few screenshots below.
Interesting approach, Drew, and thanks for sharing.
I'm curious to hear why you chose to use different programs to track different sources.
Would you be able to accomplish the same thing using one program with different successes? UTM tags could go onto the lead/contact and those could be used in triggers/flow steps, no?
Interested in hearing your thoughts as we're trying to determine the best way to do this as well.
Thanks for sharing you both.
Drew, why do you use the webpage URL and the query string as constraints? Is that because you use only one form on all the different landing pages?
Individual programs seemed like the cleanest way to get the data we need. I suppose we could use a single program with different successes, but a couple issues come to find:
- The list of successes would have to be updated with every new promotional channel we find, and it would get really long for the programs that require a lot of promotion (some of ours leverage 50+ separate channels).
- We sync these programs to SFDC campaigns, and we like to use campaign and campaign influence reports to compare each tactic to the others. That would get really tricky with one campaign and multiple statuses.
Yes, we use global forms across multiple programs, hence the webpage and querystring constraints. For the most part, the querystrings are unique to medium, campaign, and source, so sometimes those two constraints are redundant, but we'd rather be conservative to make sure we don't wrongly associate someone with a tactic.
I like the custom object approach. You could have also used a Campaign Member Object and the Offer-Channel method with paired fields. Querystring is ok, but I prefer URL params.
There's a ton of setup involved with the individual program approach, so I usually recommend using Campaign Members and parent-child SFDC Campaigns. You lose some functions in RCE because of this, but probably gain much more.