Correct way to associate Query Parameters and Add to a Campaign on Sign-up


Correct way to associate Query Parameters and Add to a Campaign on Sign-up

Was hoping to get some help here on when a user who has ever been in our system signs-up.


Here is the user journey:

  1. They click on an app marketplace and arrive at our signup form
    1. The link they clicked has UTMs params
  2. The user completes the signup form
  3. On submit,
    1. We submit a marketo lead form that creates a lead in marketo with the UTMs and a campaign then picks up the user via a smart list and assigns them to an acquisition program 
    2. Our signup form syncs the user with the database, and then creates a contact and account in salesforce

The result: A duplicate lead in Marketo (because Marketo will always regard the CRM as 100% source of truth).


So I was wondering what the correct way / best practices way is to capture UTMs and attribute to a campaign on signup?
Disclaimer: Our signup form cannot send the UTMs to salesforce as the way it interacts with the back-end prevents it from communicating with Salesforce. This is an architectural consequence that will not be solved.


Any help here would be emphatically appreciated!

Level 10 - Community Moderator

Re: Correct way to associate Query Parameters and Add to a Campaign on Sign-up

Your subject line seems at odds with the actual question.


If you must create a person in CRM (via an intermediate app), and you also must create a person directly in Marketo before that person in the CRM has synced over, then there's no game you can play with query params/UTMs to solve for that.


It's clearly at odds with the Marketo-CRM sync model, which is that one (and only one) side creates the person, the other side receives the new person request, always in a predictable order.


The best practice is to ensure the person flows in a predictable, error-free way from one side or the other.  Since you say there's critical data that's only present in the UTMs, and those are currently dropped in the app-to-CRM leg, then the natural flow would be to create the person in Marketo, sync to CRM, then have the CRM sync to the app. 


If you absolutely can't make such a change, then you need a lead auto-merge solution, something like RingLead or homegrown code called using a Marketo webhook perhaps.