[Music] [Brad Bedford] Good morning, good morning. Is everyone crawling or sprinting across the finish line for the last day of Adobe Summit? Mostly crawling? It's okay. We're all here. It's all here. Good morning. Welcome everybody to our amazing skill exchange focusing on Marketo Engage. But feel the energy's a little bit low, so let's do a quick stand up. Let's do some stretching. Come on everyone up. To the ceiling, stretch it out. A little bit to the left. There we go. A little bit to the right. All right. Fantastic. Good stuff. Good stuff.
As you heard, my name is Brad Bedford. I'm an Adoption Marketing Manager here at Adobe. But I have the pleasure of supporting a couple amazing programs for the Adobe Champion Program and our Marketo User Group Program. And I'm super excited that both of our speakers today are a part of our Adobe Champion Program. Chris for five, six years? Four. Okay. And Josh for two. So we have both of them up here and talking some most amazing things on Self-Service Flow Steps and on lifecycle operations. So first up, we have the one, the only, from the second best of the United States, Wyoming, mister Chris Willis.
[Chris Willis] Thank you. Thank you so much.
Like Brad mentioned, I'm Chris Willis and he may be a little jealous of Wyoming because he has to share his hiking trails with about 5,000 people and I can just show up and just hang out with the bears. But we do have three things in common, skiing, lots and lots of flannel, and you have to take bear spray everywhere you go.
So thank you so much for that introduction. So I want to get a little bit of a pulse of the room. So we're going to be talking about lifecycle. How many in this room own and manage your marketing operations lifecycle? How many are asking questions like, "Why didn't this person MQL? Why is this person in this stage, the person who owns lifecycle?" And how many of y'all are intimidated by the word Lifecycle? Cool. So a little bit about me. I'm a four-time Marketo Champion. And as you can see from my profile, I've been doing this marketing sales alignment work both from the marketing and the sales/RevOps perspective for a while. And I've been involved in a lot of lifecycle projects. I've managed a lot of lifecycles. I see some folks in the room here that I've helped build your lifecycles.
And of course, I live in Wyoming. I love food and wine. Picture of me and my wife in Jackson Hole and love being outdoors.
So let's talk about our agenda. Why are we here? So first we're going to talk about why accurate lifecycle operations is critically important.
Second, we're going to talk about the best practice that you likely have in your Marketo org today if you have a lifecycle program in your org.
What I'm going to term bespoke sales actions-- You're going to hear a few buzzwords. I'll try to decode the buzzwords. We've had a lot of acronyms and buzzwords thrown at us during Summit. So I'm going to try to translate these. But how the bespoke sales actions cause us issues? And we all, everybody who raised their hand, knows what I'm talking about. And I'm going to offer up a solution for correcting these operations to allow you better control over your lifecycle so you get the reporting that you expect in Advanced BI Analytics, aka, Revenue Explorer, aka-- I'm just been branded three, five or six different things over over the years. All right. First of all, let's talk about the why. So why do we have lifecycle in the first place? So first and foremost, it's not your MQL production engine.
It is a reporting tool. Lifecycle is essentially how you report on how your customers, how your buyers are performing along the buyer journey. And you do this in order to tell a business story across sales and marketing that helps marketers and your sales partners and your BDRs to make better decisions. Questions like, what exactly is a lead? What is an opportunity? How do we know that our leads are performing the way we expect? And we get reporting data such as velocity and volume, etcetera, from that. And the goal is to align marketing and sales.
So you may recognize this model right over here. So it's a revenue cycle model. I'm going to talk about a couple of these acronyms. Most of y'all know lifecycle, so I'm just going to skip over to-- We know what MQLs are or aren't.
Essentially, your definition of your lead in your organization, you've got accepted leads, you've got qualified leads, and then you go into opportunity stages. So sales accepted opportunity, early stage, hand off between BDRs. This is essentially the model that we're going to build the rest of the presentation off of. And then SQO, Sales Qualified Opportunity, opportunities in funnel. And then you have your off success path.
So talked about bespoke sales actions. So going back to this slide, we've generally built these models with the expectation that sales is going to be following a very prescribed and regimented workflow.
How many of your salespeople are following that prescribed and regimented workflow? I thought so.
If you're raising your hand, I think you might be lying.
So we do have frequent bespoke sales actions and this is basically sales mucking up the process.
So why does this happen? Well, we're not getting a lot of love from our CRM administrators for one, because they're partnering with sales who really values having engaged selling time. What is engaged selling time? Time in front of customers. They want to spend more time in front of customers selling your product and making money for your company versus getting your CRM and updating stuff in Salesforce.
So most CRM administrators are erring on the side of giving sales a lot of flexibility. And sales, if they have a lot of flexibility, they're going to use it.
However, this does create issues for our reporting, which I'll cover in a little bit.
So what are some of these common bespoke sales action? I'd love to get a show of hands if your sales people do one of these two things.
So number one, let's use an example. So you're exhibiting in the community pavilion. You got a booth up and your sales person is there and talks to somebody and it's been marked as a hot lead. You go to upload that list of people, you mark that person as MQL because they've indicated this person's a hot lead and that seller immediately gets a notification says, "I know this person, I talked to this person," immediately hits convert and creates an opportunity.
How many of y'all this happens to? All the time.
Sometimes the lead isn't even qualified and they do this.
Second is what I would to refer to as the bluebird. So seller creates an opportunity late in the buying stage and I've seen examples where I get an opportunity that's been booked for a million dollars in a velocity about two days, which is enough time for it to go through the quote process.
Generally speaking, they got a leave from your BDR, they want to keep this under the radar until they're pretty sure this is going to be quoted. It sits on a spreadsheet for six months and then the opportunity just magically shows up and salesperson looks like a hero.
How many of y'all that's happened to? Yep. All the time. It's like we know our salespeople.
So let's talk a little bit about our best practice setup, and some of the weaknesses, especially when we're working with human beings in our sales departments.
So this is a typical lifecycle program. You likely have something that looks like this in your org.
So you generally have a trigger campaign representing each stage. Best practice, we're putting this in a program. We're not building in the Modeler.
And generally, in order to help people fast track, you've got a daisy-chain that when a lead comes in, if they fast track by filling out your demo form or they got uploaded from a hot leads list from the community valley and they can immediately go to MQL. Speed to lead is very important.
And then downstream you've got triggers listening for these prescribed sales actions from the CRM. So either a person status update or an opportunity creation, opportunity stage change.
And then generally speaking, you have an audit folder in your lifecycle because stuff happens and you need to audit and essentially, clean up your lifecycle reporting 'cause at the end of the day, this is a reporting tool.
So in light of sales wanting to be efficient in mucking up our process, there's some issues with this current best practice. So due to these actions, this potential for stage skipping-- What do I mean by stage skipping? MQL converts directly to an opportunity and I've just skipped my Sales Accepted Lead and Sales Qualified stage. Technically, Sales Accepted and Qualified Lead all in one fell swoop, but now we have an issue from an operations perspective.
So what we've generally done-- And I've seen this in lifecycles that I've managed and and I've worked with, is that what we've done is we've essentially expanded the filters because we know, okay, sales is going to create an opportunity for MQL, so we need to account for this, in this SAO trigger.
However, it does compromise your workflow because now most of us are date stamping when people are coming into each stage, and now I have to account for every possible way that they could have gotten date stamped in a single trigger. You see how that becomes a little bit problematic? So the results of this best practice combined with bespoke sales actions is now you have a gap in your dates. Because generally most of us are date stamping our lifecycle stages and sending it to a BI tool.
Advanced BI Analytics, I have to say that 10 times fast, is going to help with that. But if I was to show an Advanced BI Analytics report, you would see all kinds of crazy stuff that doesn't belong. I saw that in my RCE reports, when I was working in OG Marketo.
And now you've got to explain this gap in the data. Why is there a gap for person four between February 25 and March 15? What happened? And so now you have some trust gaps with the data.
Can I really trust this data? I'm not seeing a systematic stage by stage flow anymore.
And so at the end of the day, what we've done is we've created some hacks to try to make the data work by filling in past date stamps into single triggers and I'll tell you that's very problematic, especially from a management perspective.
So I want to show you an amazing, and honestly this is very straightforward, way to foolproof these lifecycle operations because at the end of the day, I'll give you a couple of secrets. At the end of the day, sales is doing two things, really three.
They're qualifying leads, they're creating opportunities, and they're creating quotes in your CRM because they want to get paid and that's the one stick that your sales operations, your revenue operations team has with your sales team is you have to get the quotes approved. So they have to put opportunities in the system.
So leveraging that and things that are built natively in Marketo today, you can foolproof these lifecycle operations. So I'm going to talk about two things. I'm going to gloss over the first one. This is a practice that I started is essentially breaking up my lifecycle operations into executable campaigns so that I can audit and troubleshoot and also take advantage of the capability of executable campaigns to essentially Tetris my workflow, especially in MQL where there's a lot of activity happening.
And this is very, very helpful when you're troubleshooting, when you're testing and you need to add additional logic and workflow into your lifecycle steps. In the interest of time, we're not going go into detail about the executable campaigns. Definitely ask a question in the Q&A though, if you have them. Second, we're going to do with the sales qualification workflow exactly what we did with our MQL fast track. So the people coming from the booth. At the end of the day, sales getting an MQL and immediately creating opportunities, essentially they're fast tracking that opportunity.
So essentially if somebody is taking a sales action to put something somewhere in the sales funnel, we're going to trigger the sales accepted trigger regardless of what that action is. We're essentially going to flow control it through daisy-chaining request campaigns together so that person will process through each stage in consecutive order and now I don't have to necessarily hack each of these stages. I can let each stage work on its own.
So all of that processing is going to essentially fix the skipping problem.
I'll show you an example of how this daisy-chain works, and essentially how this gets executed. So we're going to talk about our example of our friend over in the community pavilion. Gets a lead and you upload it to Marketo and it goes to your CRM. Let's just say your CRM is Salesforce. And that sales rep who talked to the lead at the booth says, "All right, I know this person. I'm going to put this in the funnel and I'm going to talk to my sales director about it." So sales creates an opportunity in stage zero.
I have opinions about stage zero opportunities, talk to me offline about that.
So step one is your SAL trigger is going to-- And you'll see that added to opportunity trigger that is in your SAL trigger now. It's essentially looking at anything across the sales funnel.
You're also going to notice the member of program filter is only looking for those stages where sales is going to take something from not in funnel into the funnel.
So in step two, that lead is going to go through the progression of your Sales Accepted Lead stage and at the end of that stage, you're going to see that there is a Request Campaign step that's conditional. And it's looking at a smart list eligible for SQL. This is something you build into your lifecycle program. And it essentially looks at the qualification for Sales Qualified Lead or whatever that next stage you have is.
But it includes that stage plus anything that moves past it. So essentially it's SQL plus.
So you're going to get to the end of your SAL workflow and it's going to evaluate and I'm going to ask you based upon our example, will this person qualify to be at SQL based upon this criteria? Yes.
So then the SQL has a campaign is requested flow step and it is only filtered by the SAL stage. It's being flow controlled rather than trying to guess where somebody can qualify a lead from.
And then step three, it's going to go through that SQL flow step and it's going to come to a decision point at the end, eligible for SAO, which is essentially looking at, do they have an opportunity at all? That's new business.
Based on our example, are they going to qualify for SAO? Yes.
So now it's going to process through the SAO. I've got a stage zero opportunity.
And I get to the end of my SAO workflow. I've got a smart list eligible for SQL that's looking at stage two through close one.
I've got a stage zero opportunity. Does this person going to qualify or not? This person will not qualify because they're only in stage zero.
So now I put them in the right stage and now I'm going to wait in my SQL, SQO step. I'm only filtering for leads that are in SAO. I'm flow controlling so when that salesperson comes to their forecast meeting and says, "Okay, I'm ready to have the discovery meeting. I think this is the best case opportunity and this is what we're going to pitch," and they put it in stage two, it's going to advance and it's going to advance very efficiently because we put in the right stage to begin with.
So what this approach does enable is it gives you predictability. I don't have to guess where sales is going to start somebody in the funnel anymore or how they may skip based upon their prescribed or their desired workflow.
Through these request campaigns and executable campaigns, I can predict pretty confidently step-by-step how they're going to move through my funnel. I've got controls for entry and exit.
Because they're going to run through every stage regardless because of this progressive logic, they're going to get processed for each stage. So I'm going to get my reporting in Advanced BI Analytics RCE or if I want to pull my timestamp, my date stamp data into a BI platform such as Tableau or Domo, I have that, the data is very clean.
And I found this to be a very good hedge against these random acts of sales, which technically aren't really random.
So let's wrap up a little bit. So you're probably saying, "Hey Chris, this sounds really good but we've got a working lifecycle, and yeah, we have some bad data in our lifecycle.
I would love to deploy this, how can I get started?" So I'm going to assume that you're essentially taking lifecycle A and you're essentially cleaning up lifecycle A. You could because essentially lifecycle in Marketo is flexible. You can customize it any way you want to essentially model your business. This could be a good opportunity for you to take a look at, are we modeling our customer journey well? Do we need to have some alignment discussions with sales? I'm not going to cover that. I'm going to cover-- Okay. I just want to clean up my reporting.
So first step is we're going to prepare and replicate. So number one, audit your lifecycle and find out where the issues are.
So this is generally best done through having Smart Lists that look at the data gaps. Look at, does lifecycle say it's in this stage? What does my date stamp fields look like? Do my conditions match up with my definitions? Okay. That allows you to go to your manager, go to your team and say, "Hey, we need to do this because we're running into issues here." So second, again, this is the streamlined approach, is replicate your current workflows by cloning your current lifecycle triggers. Essentially, you're going to replicate them, create a copy of them, and essentially test lifecycle version one versus lifecycle version two.
And so what you're going to add to those clone workflows is your downstream stage triggers. So essentially your SAL is going to include everything for SAL and beyond. Same for SQL, same for SAO.
You're going to have that operational Smart List that defines the next stage in your funnel and you're going to have that choice and Request Campaign flow step.
And then last but not least, you're going to test and activate. So for testing, put some some test filters into both your old lifecycle and your new lifecycle. You want to be able to coordinate your test with your existing lifecycle.
And once you've completed that testing, you want to backfill that, your lifecycle to true up your reporting. Again, end of the day, this is a reporting tool and so it's important to make sure that you backfill to make sure that your reporting is set really well when you activate the new lifecycle.
So thank you very much.
If you want to connect, I'd love to connect on LinkedIn. There's my QR code. And I'll hand it over to Brad. Thank you, Chris!
We're taking some questions for both of our speakers at the end of our session. So if you have anything, just go ahead and take a jot, a note on that. We'll wipe them both up to answer any and all questions that you may have. But next, we have Self-Service Flow Steps coming from Spanish's best Marketo Champion, Josh Arrington.
[Josh Arrington] Hi, my name is Josh Arrington. I am Chief Marketing Technology Officer for Kapturall Solutions. We are an agency based in Spain.
I've been working with Marketo for 16 years now. And 16 years. I can't believe that number.
This year, honored to be a part of the Champion Program along with Chris and several people here that I see.
I am a certified architect and a full-stack developer, and I tell you all this to introduce myself of course. Hi. But also to give some context to what I'm going to talk about today, which is Self-Service Flow Steps.
Being a developer with Marketo, I am well versed in the technical side of Marketo, the API. I've probably built 1,000 different custom integrations and webhooks, but Self-Service Flow Steps have changed everything for me.
They are hands down the most powerful feature that I've ever seen released from Marketo and I wish more people were talking about it. So I'm excited to talk to you about it today and to share one specific flow step in particular which will give you the Excel type formula functionality directly in your Smart Campaigns. You don't need to be a developer, you don't need to touch any code, you just get in there and turn it on. So a little overview of what we'll cover today. First, what is a Self-Service Flow Step? Then onto a little clarity of what the difference between a Self-Service Flow Step and a webhook is.
How to deploy it, I'll sell you at a high level, but I'll also share a step-by-step guide. Then the fun stuff, which is what can we do with this cool flow step. I'll give you some tips and tricks, as well as some key takeaways, and then, I think we'll go to Q&A.
So how many people here are currently using Self-Service Flow Steps? Okay, we got a few. All right. Great. So for those of you who are not familiar, Self-Service Flow Steps give us the ability to add additional functionality to our Marketo Smart Campaigns. They are built-in feature, they are free, they're included in every instance and you should be using them.
So for those who use Marketo, should be everyone, you're familiar with this list of standard actions that you have in your Smart Campaign. These are change data value, send an email, change program status, but what if we want to do more? What if we want to do something else like send an SMS or validate an email or send a prompt to an AI and get a response and save it on our lead record? Up until this point, up until recently, the only option we had was webhooks. And webhooks are great but they come with a lot of limitations. So that's where Self-Service Flow Steps come in. Self-Service Flow Steps allow us to add to this list any action that we can imagine. Anything you'd want to come up with, it can be put here and they are a massive upgrade, an evolution from webhooks.
How many people here use webhooks? Yeah, that's more common. So if you use webhooks, you're familiar with this, the generic Call Webhook flow action. You get one field which is a pick list where you choose the webhook and that's it.
Self-Service Flow Steps however, have tailor-made for whatever action you're taking. Meaning you choose the fields that are there and the values. So if I have this flow step which calls an AI, OpenAI, Copilot, I have fields for that. I've got my prompt field where I put my prompts, I have a pick list where I select which model, a field where I want the data returned, and then temperature, context, things that. But that's just the surface. There are many features under the hood that make these much better than webhooks. First of all, the most important one I think is that they can run-in batch campaigns, which you cannot do with webhooks. They have these customizable fields and dynamic lookups which you saw, dynamic lookups I'll touch on later. And easy to use interface for adding and removing data. They run asynchronously, meaning you don't have the time out issues that you have with webhooks. But they do wait for a response, so when you use this in a smart campaign it will wait for the data to be returned before it continues. So it gives you a more confidence in what's going to happen.
So what does that mean for us as marketers? Let's cover some use cases so you can see this in action. Let's imagine you have a network of gyms. You have hundreds of locations, you have thousands of members, and you want to send an SMS to promote an event to all your members. How are you going to do that? Of course, we can create a webhook to send a text message. You have thousands of members, are you just going to throw them in a batch campaign? No, as we said, you can't use webhooks in batch campaigns. So you'll get this error that tells you, no. Some of you, I'm sure, maybe all of you have worked with Marketo long enough to know there's a workaround. I can create a trigger campaign and call that from a batch campaign, but then you'll get this error. You will get timeouts.
There's only 30 second limit for that service to response. So the reason you get this time out error is webhooks are called individually but all at once. So that means if you send, you run a campaign with 10,000 leads in it, 10,000 individual requests get sent simultaneously to your backend service and it only has 30 seconds to respond or else you get those errors. And the worst thing is when you get those timeout errors you don't know which SMS was sent and which wasn't because a time out error doesn't mean that it wasn't sent, it just means Marketo doesn't know what happened. Self-Service Flow Steps on the other hand are run in batches of up to 1,000. So if you run a campaign with 10,000 leads, that's just 10 batches of 1,000 leads each which is much more easy, much easier for your back-end service to handle. And there's no time out. So there's no 30-second limit. With these requests, Marketo sends a callback URL and whenever the action's completed, whenever the data's ready, it passes it back to Marketo whenever.
Next, for our gym. Let's say we want to send out a monthly recap, a wrap each month of everyone's activity at the gym. We can set up a Self-Service Flow Step to get the members' activity from the back-end, our back-end system, and then put it into an email with a token.
We know that there's flow blocking for Self-Service Flow Step, so it will wait for that response to come back to get that activity data before it sends the email. If you tried this exact same flow with a webhook, you'd probably send a lot of empty emails because it's not going to wait for that response or you'd have to come up with some kind of workaround, a wait step for an indeterminate amount of time or triggers.
It's gets messy.
Next, say we have members who didn't make it to the gym that month. We don't want to send a empty recap, that'd be pretty sad. So one of the great things about Self-Service Flow Steps is they also come with custom activities. So any Self-Service Flow Step that you have has a custom activity that goes along with it. And you can add attributes to that custom activity that don't get tied to lead fields. So even if you don't pass this data back into a lead field, you can still use it in filters and triggers. So we can add an attribute for how many times did they visit, right? If they visited more than zero times, go ahead and send them the recap. But if they never made it to the gym that month, we can set up a filter and send them a motivational, "Hey, we miss you, please come back," email instead.
Next is dynamic dropdowns. So maybe our gym is doing well, we're opening many locations, we're closing locations all the time, we want to keep this dropdown up-to-date with all of our locations. With Self-Service Flow Steps we can set up a backend service or have a dynamic picklist that checks a back-end system to find only the current and open locations.
This is great because it lets us keep everything up-to-date. These refresh automatically every 24 hours, but you can update them from the admin area as well.
So let's get into the main show, which is the Compute Formula Flow Step.
I can't tell you how many times over the last 16 years I wish Marketo had a formula functionality. How many times I've had to export data into Excel, do calculations, do formatting, and then import it again, and how happy I am that I don't have to do any of that anymore.
So here you see the Self-Service Flow Step. Like I said, tailor-made, so you have the formula field, and then you have two fields where the data is returned.
This can be deployed in Adobe IO and used today. There's no code, I promise you don't have to touch any code.
The right formula applied at scale is the difference between working hard and working smart. So I asked ChatGPT to give me some quotes about formulas and it gave me a bunch of quotes that I didn't really like but it also threw its own quote in there, quoted itself and it was the best one so the AI wins again.
So installing and using the flow step is really just three steps. It's downloading the code, it's open-source provided by Adobe, uploading it into Adobe IO, and then installing it in Marketo. I'm going to provide a step-by-step guide. It is technical but it's not hard. It takes 30 minutes and once you do it, you do it once, you have that full step forever, you don't have to touch it again.
So here's the QR code for that step-by-step guide. A couple notes, you do need developer or system admin access in IMS. You do need Adobe IO. If you're like me and when I started and didn't know what Adobe IO was, that's fine. You may already have it, you may not. All you have to do is contact your Adobe rep and they can either set it up or tell you how to access it.
You won't interact with it much. It's like a couple clicks and that's it.
So again the code is provided open-source. You don't have to touch the code, you're just downloading it and installing it. But if you are a developer or you're feeling curious, you can change the code however you want, modify it to do anything you want. So feel free. The code is made for Adobe IO, as I mentioned, but you can deploy it anywhere if you're using AWS, Microsoft Azure, Google Cloud, wherever.
And again here you see the flow step.
Again these things are tailor-made, so you have, an input formula where you put the formula. All the formulas for this flow step run off of a library called Formula.js and their website will be in the step-by-step guide but they have all the functions listed. Most of them are the same or very similar to what you would see in Excel, but they have them all listed and they have a tool where you can test and try out the formulas before you ever put them into Marketo. And then you have two return fields, and the reason for that is sometimes you expect a text back or a string and sometimes you expect a number back, so you have both in case you need them.
All right. So now for the fun stuff, what can we do with this new toy that we have installed? All right, Imagine you work for a university and you have all these prospective students visiting your website. You've created scoring around all of the majors that are offered by your university. And so you're scoring everyone how they interact with content for specific majors. You've got all these scores. But now you want to run a campaign and know what is the top interest of each student. How can we do that? Well, with a formula, we can easily compare all the scores, see which one's the highest, and return the text value of that score.
So here you see this in action. I've put the formula in that formula fields. I select Top Interest as the return, so that's where the answer to the formula will be returned, and then you can see how this sample of students would be placed based on their scores. [Woman] Sorry, can you go backwards?.
[Josh Arrington] Sure. We provide the slides afterwards too.
All right. Next use case, maybe you're on the other side. You're selling products and your sales team comes to you and says, "Lead quality is terrible, we're getting a lot of students." And you look through the data and that's what you see. You're seeing a lot of students are downloading all your content, great, but they're doing it for research and term papers and they're never going to buy your products. You're too heavily weighing the behavior score and you're not weighing enough the demographic score. So what do you do? You can change the scoring model, you should change the scoring model. What do you do about the scores that are already in the system? You want to create a composite score to combine them and weigh the sides differently.
You could export the data, run the calculation in Excel, and then import it, but that's a pain. That's not really the mops way. I want to automate this. I want to just run a smart campaign and be done with it.
So with the formula flow step, we can use a simple formula, set weights for the different scores that we want to combine, and then come up with a composite score. And the great thing about this is once you run it, this is just one sample. Maybe you run it and you're like, "You know what, this scoring is not really working either, let's change the weights up." It's as easy as running a smart campaign. This works just any other flow action in a smart campaign and something you've done a million times. So it's very easy to do and once it's set up, you have it.
So we fix the scoring and sales comes back and says, "Scoring's great, now can you assign all of the new leads, in a round-robin fashion for all of our reps?" - Sure. - How are we going to do that? Well, easily with a formula because we know Marketo Lead IDs are sequential. So we can use a MOD function or a remainder function with the lead ID and the number of sales reps we have. So if we have five sales reps, we just run a MOD five function and it will give us a number sequentially one through five repeating so that we can use that as a round-robin. So here then we just take that round-robin ID, we use a Change Owner flow step, set the choice for each Round Robin Seed number, and a corresponding sales rep.
And all the new leads will be assigned. So that's three examples, but we only have so much time so we'll do some some rapid fire examples. Text capitalization, just preparing text or if you're going to use first name, last name, or anything in an email or something, let's make sure it's looking good. That's a great one. Partial obscure data. So we use this a lot for our preference center or refer a friend where we want to show that we know somebody but not give out personal identifiable information.
Lookup is Excel's VLOOKUP, so there's a million use cases. Here you can see we're using the country code and returning the phone, prefix, so +1 for the US, +44 for the UK. This is also super helpful for anyone who's using an external system that uses GUIDs for example. If you're using Dynamics and you're getting a bunch of IDs that mean nothing, now you can do a lookup and get an actual value.
Calculate completeness, so if you have a set of key fields, you can put them through this formula, set each of those and then divide by-- See if it has a value in it, and then divide by the total number of fields to get a completeness score. So you get a percentage completeness across your lead database. It's a great metric to just see, for your key fields, how is the data quality or completeness in your database. Next, open and click-through rate. So we often put a score for every time someone opens an email and someone clicks an email. So we take those scores and with a formula just divide them, then we get a click-through rate, not at the email level, but at the lead level, which gives you a really interesting metric of how one individual person is interacting with your content overall.
And then finally extract domain from email. So if you have johndoe@adobe.com, you can extract just the adobe.com parts. This is great for matching people by company. You can also use it to look up the MX records so you know what email client they're using before you ever send them an email.
And that's just the tip of the iceberg.
Once you have this set up, you will be amazed how often you're using it, how many times it saves the day. Not for these complex formula use cases, but the most simple mundane things that can be just a showstopper or a game changer for a greater campaign idea.
And again, they have this website that'll be in the guide, that you can check and test all of your formulas and see all of the functions that are available.
All right, so just a few tips and tricks. When using the formula, you don't use an equal sign like you would in Excel, just put the formulas directly. If you're using Marketo tokens, if they're a text token and not a number, you want to surround them by a single quote or an apostrophe. Next, use Generative AI. If you tell ChatGPT that what data you have, what you're trying to do with it, and that you're using Formula.js, it can come up with amazing formulas, complex formulas. You don't have to write them out and test them. Well, test them, but you don't have to write them out. It'll do that for you.
But do test them because the AI will hallucinate, it'll come up with functions that don't exist, so you've got to check it. So definitely test your formulas before putting them into action.
And then, just next steps. Where would I start? I would start looking at all of your current workflows, see where a formula can cut out manual labor, cut out these export import processes, update data, maybe have messy data, look at where you're missing data or need to format data in your database that you're struggling with and run processes for that. Then install the Formula Flow Step, it takes 30 minutes, I promise it follow the step-by-step guide. I'll throw the QR code up again at the end.
Once you have it, you'll love it. Then train your team, show your team the flow step, how it works, give them these use cases, and put it in the hands of them because that's where you're going to see the magic. Then again test your formulas, use that tool on the website to test your formulas, and just test out new ideas. Get creative with it, see what you can come up with.
And then finally on the topic of just, Self-Service Flow Steps in general, I would look at your webhooks that you're currently using. Oftentimes that's where you're going to get the best value of it. Converting a webhook to a Self-Service Flow Step is not that complex and it frees you from all of the limitations that webhooks come with. And then, yeah, just see what options are out there. Also integrations, if you have any kind of integrations using the API currently, there's oftentimes where you can use a Self-Service Flow Step instead, cut down on API calls, give yourself more control because now you can call it from a smart campaign and streamline things.
And that's it. This is the QR code again for that step-by-step guide and I'd to invite Brad back up and I think we'll do a Q&A.
[Music]