View the session live or catch the replay here. You’ll find the recording and all related resources on this page once available.
Our live discussions are happening over in Slack. That’s where you can connect with speakers, join session threads, and chat with other attendees in real time.
In this session, we’ll cover Domains, Hosting, and the basics of how the ‘web’ works. This includes the basics of URL taxonomy.
You’ll learn how to:
Understand Query Parameters in a URL.
Use Query Parameters with Pardot.
Explore Query Parameter ‘magic tricks’ with popular web services.
Speaker 0: Hello, everybody. Welcome to Fancy Things with Query Strings. For those of you joining us today for the first time, welcome. Um, we have a great session planned. Uh, Brandon Walton is going to present the session, and he’s going to take it away.
Speaker 1: Thanks, Amber. Hey, everyone. Thanks for attending. Uh, like Amber said, my name is Brandon Walton, and this session is fancy things with query strings. And we’re gonna be unlocking some marketer manage marketer magic, sorry, with query strings. Um, so let’s jump right into the agenda. The agendas have been shrunk a little bit, so I will be moving quickly. I wanna get through as much of the content as possible and leave some time for q and a at the end. Um, so let’s jump into the first part of it. And, actually, before we get started, there’s a little poll that we want to launch to learn a little bit more about who’s in the room with us. So, um, Amber can go ahead and launch the polls. Um, that gives me an idea of of how to kinda direct and tailor the information here. Alright. So the first question is gonna be, Do you know what a query string is? That’s a good place to start. We we we are gonna describe it. We are gonna explain what a query string is, but we just wanna get an idea of who alright. Good. We’ve got about 76, 78 of the people know what a query string is, so that means we can jump into more fancy things because we understand the basics. Alright. Perfect. Next question that we want to ask. And for the folks who don’t know what a query string is, it’s okay. There will be some review when we get things going here. But second question is we want a little bit we wanna know a little bit more about who’s in here with us. So the second question is who’s in the room? Are you a marketer? Are you a developer? Are you a consultant? Or are you something else? You identify as whatever you want. Um, alright. Got a lot of marketers in here. I love that because I love doing this session with marketers because, um, a lot of marketers might be really good at Pardot, really great at content, things like that. But what we wanna make sure that we are, um, teaching you as marketers, and maybe this is something that hasn’t been taught previously, is kinda workings of how these cloud-based tools that you’re working with, um, are designed to work, and that’s where we’re gonna get started. So cool. Thanks for take participating in that simple poll. We’re gonna jump ahead here.
So the first thing, what is a query string? We wanna understand what these things are. So a query string is, um, at the end of your URL. So if you’re going to salesforce.com or google.com, a query string is a way that we can pass additional information through, um, to the page that we’re loading. It’s, um, it signs a a a value to a different parameter, and we’re gonna explain we’re gonna go into a little bit of that more next here. So, um, here’s an example of of the anatomy of a URL. Um, so what’s in a URL? It’s really not that scary. And the example that you’re seeing here on the screen is what you get when you search for Pardot inside of a platform like Google. So we can see here the first part of the URL is the website, is the server that it lives on. And then you can see there’s a question mark. And you might notice this when you’re sharing links on social media, Facebook. There’s a question mark and it’s followed with if you don’t know what this is, I’ve heard people call it things like gooblygop or whatever. It actually isn’t gooblygop. This all means something. So in the case of Google, when we search, we have this question mark q equals pardot. We’ll take a look down there. Q Pardot. So that could be the query or the question. Um, so the idea is the query string are ways that the web is passing through information, um, when we search for stuff. Um, now let’s give it a shot here together. We want this to be a little bit interactive. So, um, if you have another monitor, pop into Google right now and and do a search for something. We’re gonna go on a little bit of a journey here today. Myself, I’m based out of Seattle. So my journey today is I’m gonna be looking at Seahawks tickets. So if I pop in Seahawks tickets into Google, hopefully, you’re able to see this at the top of my screen here. We have a search q equals Seahawks tickets just like what we’re seeing down here below. So the idea here is a query string allows allows the web to pass through information and tell the website what to return to us. So go ahead and take a moment, give your own search, um, and reflect on what you’re seeing there. And, again, we are shrunk down on time a little bit, so we’re gonna fly through this stuff pretty quickly. So that’s the first thing. Just to get a familiar with the site that we’re all kind of familiar with, google.com and how Google handles search. So a little trick is if you wanted to bypass the search, you could just go directly to your address bar at any given time, type in google.com/search?q= and type in your question there, and you don’t need to use that Google search bar. So hopefully, a little magic fancy thing that you can do with a query string already, number one. Alright. Now in addition to Google, um, there’s other sites that we can go through. So the other thing that I like to do and show folks is now if we’re actually taking a look at these ads in Google, we can go to StubHub and, like, even though even in StubHub, you’ve got our UTM source equals Google, UTM campaign. All these things are query strings that are getting passed to, in this case, StubHub when we’re on that site. And if you’re a Pardot marketer and you’re you and you’re hearing words like campaign attribution and attributing revenue to different campaigns. Oftentimes, they’re talking about these things called UTM parameters, UTM source, UTM campaign. And you can see here we click through an ad in Google and we’ve got these source equals Google, medium equals paid search. Um, and so this is actually what we’re using as marketers to understand the source of these things. So, uh, an important thing to know and all that is going to be done through query strings more often than not. Um, Another place that query strings live, um, just kind of a sidebar here, is inside of Salesforce. So let’s take a look at what that looks like. Again, understanding query strings is gonna be the foundation of of being a good web professional, uh, Internet professional, cloud computing professional. So when we are in Salesforce, for example, and we are creating a record, if you look at the browser, you’re seeing something like the name of your account, you know, your Salesforce URL, and you’ll see this question mark here. Background context is lightning. It’s a contact. Right? So it’s letting us know what we’re adding or where we’re at using query strings. So there’s a lot of really cool things. We’re not gonna get into this for this course, but a lot of really cool things that you can even do inside of your Salesforce account with query strings as well. Um, a lot of buttons are made leveraging, um, this kind of technology, the idea of query strings. So couple of questions. Um, you see the question mark here. What are some of the things that you think is getting passed through here? Right? We see, um, contact record. We see what looks like a contact ID. So all of these things are built into the architecture of of Salesforce as well. Um, another good reason to get familiar with query strings. One of the things that you wanna know is there’s two types of requests that we’re gonna cover today, the two most basic flavors of request, and that is a Get request. So when you go to a browser and you type in docs.google.com/presentation or whatever, that’s actually a Get request. What your computer what your web browser is doing is saying, okay. Get me the information that lives at this location. Um, that’s called a get request. You’re going to google.com. You’re asking a question. You’re saying, get me information on Seahawks tickets. Get me information on Pardot. Get me information on the World Series. The other kind of request is a type of request that we’re making when we’re doing things like polls or sorry. Polls. Well, that’s an example of one, but forms and that’s called a Post request. So when we submit information, like you go to a form and the action is, you know, submit my information, that’s doing a post. So we’re saying rather than get information, we’re saying, okay. Send information to, um, to a place. And we can do a lot of fancy things with query strings when we’re sending information. So when we think of a post, typically think of the action portion of a form. If you’re a Pardot marketer, you’re probably thinking form handlers. You are absolutely on track if that’s where your brain is going right now.
Few fancy things, batch one. We’re gonna have a little bit of fun. Um, this here is, um, a a CDN, a content delivery network for, um, Ninja Forms. And what we’re gonna do is we’re gonna open this in a new window. And what I want you to do is take a look at the query string as well. And what I’ll do is I’ll even include this in the message here so y’all can see this and play along with me. But let’s take a look at this query string because I think this is a really fancy thing, um, that, um, stat uh, statically does. So we have our question mark here and we have this w equals nine two six quality equals 70 and f equals auto. So width I’m gonna tell you w stands for or w stands for width. I gave it away. Wonderful presenter. Right? So what’s cool about this example here is we can change the width directly in the bar here and change the size of the image. So what’s cool about using services like statically and the CDN networks is we can change the size of this image just by changing the link that we’re using. So if you’re an email marketer, this is really useful because if you have a really large image on an email and you wanna make sure it’s optimized for size, using a service like this, you can just go in and say, I want this image to be, you know, the width to be 550 to look really good in all of my Pardot emails, and then it’s just gonna make that adjustment for us. So this this tool, this system is allowing us to pass through the width, the size of an image in the query string. So there’s a fancy thing that you can do with this service called statically and there are a lot of tools like this as well. Another really awesome one is YouTube. So you can pass through in YouTube when you want a video to start, if you want it to play automatically, a lot of great things and attributes that you can pass the query string. So, again, start thinking about this in ways that you can use. And, also, what I like about this, why I wanted to share this with you all, is this is a Ninja Forms on how to connect Ninja Forms with a query string based, um, URL. So the idea is you have a form that lives in Ninja forms. We wanna send that information somewhere else. So a text box, we’re gonna send over to this key value. Fun stuff.
Moving ahead. Alright. Using query strings with Pardot. This is ParDreamin’, so we’ve got to talk about Pardot. So Pardot and query strings, there’s lots of magic that can happen. In the example here, we’re turning cards into money. That is our job as marketers inside of Pardot, right, is to turn our marketing content into money, track the money where is where it’s coming from, where it’s going to. So let’s jump into some fancy things with query strings and Pardot. So one of the places that is great to use query strings in Pardot are on Pardot forms. Query strings can be used to prepopulate your forms with information. This is a great trick to know if you don’t know it already, and there’s lots of fancy things we can do with that.
Introducing a few fancy things batch number two. So let’s visit a Pardot form. We’ve got this Pardot form here, info at CypressLearn. We’re gonna pop this open in a new window here. It’s gotten me cookied here. It’s got one of my many email aliases cookied here, um, just like we would expect Pardot to do. So this is prepopulating, um, because Pardot has gotten me cookied. But we wanna do something a little bit fancy. I get asked this question a lot. Brandon, we’re doing marketing on TikTok, on Instagram, on Facebook, and LinkedIn. We need to be able to track these sources better. What’s the best way to do it? And what I tell my lovely clients is query string magic. So let’s test these ones down below. We’re gonna use the same form, and I’m gonna pass through this source equals Facebook. And and if you’re friends with my good friend, Jenna Mulvey, she’s got some great articles, great content out there. I believe she was one of the keynote speakers here. She’s doing some other presentations here. Um, she has some great articles about how you can, um, optimize things with with, um, query strings and forms as well. But just to show the example here, we’ve got some variation. If you’re looking at this closely, this is the exact same form, but we’re gonna pass through this query string source equals Facebook. And what we wanna take a look at, ta da, down here source equals Facebook. Now this might be something in practice. You would make source a hidden field, for example, so that way your prospects aren’t saying, no. I wanna change this. I wanna mess with your analytics here. So what you could do is make this a hidden a hidden field, pass through source in the query string up above. And then if you’re doing a specific post for, uh, TikTok or for an Instagram or anywhere, you can have a a a source parameter. You need to make sure that your field is named source inside of Pardot. But if that matches up, what you’ll see happen is anything that you pop in here would be updated with that value. So some of the other examples that we have and oh, what’s going on here? Some of the other examples that we have that you can, um, test out maybe on your own forms are, um, trying it with source equals Instagram, source equals TikTok, so on and so forth. So that’s one example. Um, your query strings can be anything as long as you’re prepared and you have them mapped to one of your form values. Um, so a couple of questions to ask yourself and to think about, how do the query string variations down here vary from the original URL. Well, the URL stays the exact same, but what we’re appending to the end of that is a question mark and our parameter and what we want that value to be. What other kind of benefits could you think about leveraging query strings inside of your Pardot forms? Um, I’ll let you sit and focus on that. The other thing to say real quick is you can pass through more than one value. So you can add an an ampersand and and then campaign equals and campaign equals. If you take a look at the at the Google strings if you’re testing around with that, anytime you see an ampersand in there, that’s getting ready to pass through another key value pair for your query string. So another place that you can do fun things with your Pardot query strings or your query strings in Pardot are in landing pages. So, um, query strings can be used to prepopulate your landing page forms with information as well. It works the exact same way. So we’re gonna use a similar example, but this one is going to be a a full on, um, landing page. And you can see here, actually, I think I did that wrong. But you can see I have the query string in here that’s passing through my email and my company, and it’s prepopulated on the form down there below. Um, so if you’re using, um, emails, uh, links inside of emails, um, a really powerful thing to to do is add, um, additional query strings inside of those emails, particularly with the, uh, iOS 15. One of the things that we’ve been doing, um, in our marketing is, um, passing through what the prospect’s email is, um, um, from the email. So we have that initial additional piece that we can capture just in case some of the cooking stuff gets a little bit weird, we can still understand who the prospects are clicking through. So the takeaway from there is, query strings will work with Pardot forms as well as landing pages. And in addition to that, um, form handlers. Um, query strings can be used to prepopulate your form handlers as well. We’ll talk about more of of this, uh, a little bit later, um, when we talk about webhooks and some special sauce.
So the last page of this I know I’m going really fast adjusting for time, and I wanna make sure that there’s time for q and a. But can you taste it? We’ve got some special sauce. We’ve got T Pain eating hot sauce. So if your company is on Pardot Growth, I know that, um, the range of, um, companies that are using Pardot goes from, you know, folks who are on the highest level of Pardot. You’ve got all the API calls in the world. I work with a lot of the small guys out there. The folks that, you know, they’re just getting started. They don’t have the resources to build out everything on top of the Pardot API or even afford a level of Pardot that has the API. So I say no Pardot API, no worries because we’ve got these magical things called form handlers. Um, form handlers are basically URL endpoints. Um, a lot of times, um, when we are looking to do some integration with Pardot in an application or a a site or a tool, what we’re looking to do is post information from that tool into Pardot, and form handlers work really, really well for that. So if you think of an application that you’re building or a tool that you have, um, more than just a web form that’s sitting out there, you can do an HTTP POST method and use a form handler with that. So this is a fake form handler here. This is not real. Um, but let’s say I have a web application where I’m working with attorneys and every time an attorney files a new docket in my application, I wanna send them into Pardot. So this is a back-end application. It’s triggered by an attorney doing something inside of my tool. I can use a form handler, post to that form handler, and we’re gonna treat that as a Pardot action. So from that form handler, we can add Brandon to an engagement program. We can assign Brandon’s, um, user. We can do all of the great form stuff that we’re doing inside of Pardot using a form handler, and that allows us to integrate things a lot quicker and a lot faster. We don’t have to do all of the authentication steps that come along with the Pardot API. So if you’re solutioning, um, a a process for integrating Pardot with something and all you need to do is have that tool send information into Pardot, send a prospect into Pardot. Oftentimes, you can do that with a form handler and save yourself tons and tons of development time. So the next time you’re getting pulled in if you’re the marketer, you’re getting pulled into that complex technical conversation and things are coming up with, oh, we need the API. We need to authenticate. Do yourself a favor. Bring this up as an optional solution, and you might be a hero because you learn some fancy things with query strings. So I do this a lot and it works really, really well for custom integrations, again, where you just need to post someone in post a new prospect or sync a new prospect into Pardot from another application. Some of the other edge cases that we see is to create personalized email experiences from email links, um, outside of, uh, outside of, um, Salesforce or Pardot. So, um, some folks that we work with, um, maybe this sounds um, like blasphemy for folks in this room, but we work with folks who are they’re using HubSpot, Marketo, and Pardot. They use three or four different tools. And the thing that Pardot has over a lot of these tools is that way that Pardot syncs with Salesforce. So oftentimes, we might wanna use multiple services, Mailgun, Mandrill, all these other tools out there to send our emails out, and then we still want when an action happens, when a trigger happens, and then they route back to to Pardot. You can use, um, form handlers to do that for you. So you pass through the email parameter and then if the form handler text there’s an email there, you can have the form handler do some of that magic for you. So that’s another little edge case for you to personalize email experiences from email links external to Pardot. Um, the other thing, if you are on Pardot Growth and you’ve tried to use something like a Zapier and you try to go to Zapier, for example, and use the Pardot connector, you likely get an a message that says, sorry. You can’t be authenticated, um, or your API calls have maxed out, something like that. That’s because if you’re on Growth, you don’t have Pardot API, but you can use, uh, webhooks with Zapier and use your form handler in that webhook and use your integration that way. Um, it works really well. Um, and we’ve seen that happen a lot.
Now my special sauce and what I’m here, uh, to talk to you about today is using, uh, form handlers or the idea of query strings to to, um, do a selective sync with Salesforce. Uh, so the example here, um, this is using Process Builder. I know, I know, I know process builder is going away, so bear with me here. I’ve also got the flow version of this. Um, but, uh, I have created, um, an invocable Apex class that can be used with things like Process Builder and Flows to send an HTTP post from Salesforce to anything that you want. And where I’ve been doing a lot of work with this tool particularly is with, um, form handlers inside of Pardot. And so what’s awesome about this, there are certain things like, um, LinkedIn ads integration, um, other tools that are that already have prebuilt integrations with Salesforce, and they either become one. You’re gonna be doing a lot of custom integration work to get that to work with Pardot. So alright. We’re gonna either pass through everything, do a bunch of automation rules, stuff like that, or you can use this feature and associate when a when a lead or contact or even a custom object gets sent into Pardot using something like a Process Builder or a Flow. Um, so what this does is we have a variable here. The variable is the form handler itself. And what we’re doing in this case is we’re saying take the lead email field and pass that through to a Pardot form handler. So each time this Process Builder kicks in when the condition is met, it’s actually passing that prospect into into Pardot. This works really well. Again, I work with a lot of the small folks out there. So if you have contact block limits and and syncing everything inside of Salesforce isn’t an option for you, It works really well for that. The other thing that’s nice is you can have this working with several different Process Builders, several different form handlers. And then if you needed to have LinkedIn be the source and you didn’t wanna have to go back in and retroactively do completion action on the Pardot side, You pass these through to a form handler, and then whatever values you’re using on the form handler works with the Process Builder, and it works really, really nice. So I’m kind of I’m realizing as the years go on, I’m becoming more and more of this old school guy, like, even with all the new Pardot drag-and-drop stuff. I’m like, but I like the HTML builder. I love Process Builder. But, you know, doing my due diligence, I do understand that we do need to move everything over to flows. So it does work with flows. I have tested it. Um, what you do, you create a formula, um, inside of your flow and you add your Pardot form handler in there. Um, and then you have your email equals the record email. So again, if you’re using flow, if you have an email there, that’s what the form handler needs in order to work. So this flow can be triggered off of not only an updated creation of a lead or contact, we get a lot of requests where, oh, we have this thing called a product key or we have, um, this custom object that we’ve set up, and we need to be able to send the person the contact associated with that custom object into Pardot. Well, you build your process on one of those custom objects, and you’re in the you’re in the game again. So, um, an example here is, um, a record-triggered flow run immediately. So, again, we’ve got a product key. Anytime a new product key is generated, it’s associated with a contact. We’ve got an email field that lives on that key. We’re gonna do that send to Pardot. It’s gonna be that formula that’s gonna send to the form handler with the email inside of there. And boom. Now I’m doing a selective custom integration with Salesforce using Pardot Growth using a using a form handler here, which is saved saved my tell a lot. And, uh, especially for, like, the smaller customers who, you know, business units, things like that really aren’t in the picture for them yet. Um, this is extremely, extremely valuable. This is a very simple one, but you can make these flows complex. If you’ve already been using flows out there, you have a clear understanding on how complicated they can be. But the idea is, uh, something happens on a specific record, any record inside of Salesforce that has an email that we can send into Pardot, we can use that as a trigger and we can use that to initiate a sync between Salesforce and Pardot. Pretty fun stuff. Um, so on this example here, just to show you a little bit more about what we did on this example, this is on a contact. The idea is the email field is not empty and they are a subscriber. So the subscriber is checked to true. That’s going to, um, initiate our flow here, um, and then we just have that value, um, that form handler. You saw that formula there, the formula form handler. So when the condition is met, we’re gonna call this form handler formula. It’s gonna do an HTTP post to our form handler. Boom. And then that prospect will be added to Pardot or resync with Pardot, added to that form handler. Then we can have all of our Pardot magic take over from there. And we will, um, leave you all with a gift for coming out here. We have an article about this. We’ve actually made this into a package. Um, so you can go and click through to this, uh, link here, um, and download this managed package and use it if it’s something that’s gonna be helpful for you. And if you use the promo code pardreaming21, I’ll copy that in there for you as well, you’ll get it for free. So, um, you know, we are all entrepreneurs here. Oops. Let me pop back to that. So we are charging for, um, folks we don’t know, folks who we’re not meeting through channels like this. It’s a $39 thing per install. But for my friends here at ParDreamin, you enter that promo code pardreaming21, and you’ll get it for free. I made it. Alright. Five minutes to spare for q and a. Thank you for listening to me talk extremely fast. I wanted to make sure that we did have time for q and a and get feedback from both.
Speaker 0: Um, I did see a few questions in the chat, but it seems like some of our audience members answered the questions for them.
Speaker 1: Gotta love I I love people. Thank you know, thank thank you. I’m just now seeing this because I was, like, laser focused on my presentation. And so I’m going through, oh, there are a lot of questions. But then I see folks adding this. Oh, yeah. You you all are awesome. Yeah. I I I love this community. Um, let’s just so maybe I’ll scroll to the bottom of this and see if there are any, um, yep. I’ve used this workaround to leave it out of the URL for for Salesforce help articles. You know, one of the things I noticed happening with Salesforce help articles, and I and I saw it happening to other folks is I started getting my help articles in Thai. And, um, I might lick it, but I don’t speak Thai. I’m I’m not Thai at all. And what I realized, there’s a little query should I could pass her lang equals English, and so I was doing that. Yeah. Um, curious, anonymous. Curious if any other marketer is only in charge of the Pardot side and doesn’t have access permission to building these flows and it slows you down. Womp womp. Definitely have seen that before, particularly when we’re getting into things with flows and Process Builders and stuff like that. Depending on your organization and how large or small it is, um, it might be, uh, kinda blocked off for you, But that becomes a great opportunity to have some sales and marketing alignment. And, hopefully, what you’ve been able to take away from this presentation is another fancy trick you have up your sleeve to say, well, you know, we don’t need to sync everything. Um, we can be we can have more control over how these things sync if, wink, wink, Salesforce admin. You either give me access to this or let me block off a couple of hours on your calendar to implement something like this.
Speaker 0: Um, I see one more question that just popped
Speaker 1: up. Yeah. So why use UTMs on a form when we use forms on website pages that could come from various sources? Also, the value of tracking is so the source shows in the record. Great point. So, Chad, you have a couple of options there. Um, one is you’re creating a form for different pages on your website. Sometimes what the requirement is, and I see this a lot for folks who are managing blogs, for example. They say, Brandon, we wanna have, you know, one form on a blog. Uh, we don’t wanna have to create a form for every blog that we’re posting, Just one form. And we wanna be able to have that form work dynamically and pass through the source when that form works. So it’s a way to actually save time. Um, and maybe it’s not UTM. Maybe you are just using you don’t have to use UTM underscore source. Maybe it’s something that you’re creating that you’re just using for your own attribution inside of your Pardot account. But the idea is it would allow you to use a single landing page. And then when you’re sharing that landing pages in different places, rather than having to go through and build five or six or seven or eight or nine or 10 different landing pages, just use a query string to attribute where your visitors are finding that landing page or form, and it’s gonna save you a lot of time. That’s a big benefit for using something like a u a query string versus recreating all of your Pardot forms. And again, for some of the smaller accounts that we work with, they’re limited because they don’t have all of the forms as, you know, you would in, you know, in an advanced version of Pardot.
Speaker 0: Well, uh, I think our time is about up. Uh, thank you, Brandon. That was an amazing session.
Speaker 1: Thank you.
Speaker 0: A lot of fun to watch.
Speaker 1: Cool. Cool. I’m happy that we got done in time. I was, uh, I was going fast there. Thank you all for joining and watching and contributing. Um, this q and a is awesome. I did not expect, uh, all the help. So this is wonderful, and thanks. And, uh, we’ll see it. We’ll see you out there. Happy Pardotting. Thanks to everyone.
Speaker 0: Bye, everybody.