Automate & Innovate Building Smarter Flows with Webhooks & Self-Service Flow Steps (SSFS)

Why this matters

Elevate your Marketo automation beyond the basics! Join our February User Group session to explore two powerful features for creating dynamic, intelligent, and connected marketing programs: Webhooks and Self-Service Flow Steps (SSFS).

Learn practical setup techniques, discover innovative use cases, and see how these can integrate with AI. Whether you’re looking to connect Marketo to set up integrations with third-party systems in real-time with native integration or build custom integration from ground up, this session will provide actionable strategies to enhance your technical foundation and drive innovation in your Marketo instance.

Transcript

Welcome everyone to today’s Deep Dive session. My name is Laura. I can already see that the first couple of people are joining in, which is fantastic. And I’ll be your moderator for this session today. So following our current series of the last couple of Deep Dives, you might have seen that those have all been a bit more technical. So we’re just continuing that session today as well. So I’m really happy to have two very fantastic speakers with us today with Josh and Tashil to actually explore the ins and outs of webhooks and also self-service flow steps. But before we’re getting started, as usual, we always have to talk housekeeping as well a bit. So to keep this a safe and productive space for everyone, please remember the cool three rules that are applying to actually all of the market to use the books across the globe. So first, no self-promotion or pitching. Second, respect the privacy of all the attendees. And finally, what is said in here stays in here. So please don’t share any other people’s use cases without their permission.

A very quick legal note, as always, today’s session is obviously being recorded and will be posted later for future learning. So if you prefer not to be part of a live recording, please feel free to hop off and catch the recording later.

If you don’t want to miss out on any of the future sessions, as also the same with all of the other market to use the groups. Right. So I’m guessing also you should use that. So please make sure to follow our user group on Babbie to stay updated with all of the upcoming events and also community news, because that is really the best way to ensure you are never going to miss an invite for a new event that we’re launching.

One thing, because especially as April is approaching, which we always want to mention is, of course, Adobe Summit is just around the corner, so happening in a few weeks. Therefore, we are very much looking forward to, of course, all of the innovations, all of the roadmap sessions and also all of the cases that are going to be presented there. I’m sure you do too. And of course, all of us are especially excited from the champion perspective, because a lot of us champions will be there in person. So if you haven’t registered yet, just do so and be forward to be or obviously in person and then looking forward to seeing a couple of you guys there as well.

Also, there’s one thing that I always want to mention, because there’s always some very interesting user groups also coming up across the globe. So as we were just speaking about the Adobe Summit and for the ones of you that want to be extra prepared, I was just like highlighting two virtual sessions that actually both going to happen on March the 12th. The first one is the regular Adobe Champion Office Hours where you can, as always, drop in any questions that you would have. But of course, also, especially this time, all of the questions around the Adobe Summit are very much welcome. And the second one that’s actually organized by our fellow champion Lauren is the Taxen market to use a group, which is actually going to be a virtual form at this time where she was just bringing in a couple of champs together as well. And that session is really specifically focused around any things that will be summit related. So therefore, if you want to extra prep for that and if you just want to hear what all of our fellow champions are thinking about it, that is a session that I definitely want to recommend.

And with that, enough of an intro, enough of housekeeping, because if like before we are going into the agenda itself, we obviously want to just get to know our speakers a little bit better. You already know me. Therefore, I would just give a give over the spotlight to Darshil just to quickly introduce yourself to the audience.

Amazing. Thank you so much, Laura. Hello, everyone. This is Darshil. I see a lot of familiar names, a lot of familiar people in the participants list. But for those of you who don’t know me, I’m Darshil Shahi. I work as a senior consultant at Deloitte South Asia based out of India, western part of India, to be very specific.

I started my professional journey with Marketo right out of college.

Love Marketo and everything about it, specifically the champion group and the community as well. I’m a multiple time certified solution architect as well as certified expert. And I work closely with Adobe in developing their certification exam.

So honored and grateful to be here. Thank you so much, Laura, for having me. Looking forward to an exciting session. Thank you. Thank you so much. Over to you, Josh.

Hi, Josh Harrington. I’m chief marketing technology officer for Captrol, Marketo based agency based out of Spain. I’ve been working with Marketo for, I think, 13 or 14 years now. Many times certified architect and honored to be part of the champion program this year for the third time. And yeah, very happy to be here.

Fantastic. Thank you so much. In that case, I really want to keep it quick on the agenda side of things because we’re starting with webhooks and then we’re talking self-service rule steps, followed by a bit of a Q&A. I always want to mention that. And please, guys, don’t hold back with any of the questions. Drop them in the chat right away, because I always just keep an eye on that alongside the session. And then if we still have time at the end, then we can sprinkle one or the other question in. But with that, I’m actually going to hand it over to Darshil because he’s going to be talking about the webhooks part to start off. Awesome. Thanks, Laura. So, yeah, let’s start with webhook. Can you please move to the next slide? Yeah, so we have a couple of slides on just the basics of webhook and then we’ll go a bit into the deeper areas of webhooks. So to start off webhooks, I would like to just split it like it’s like web-based hooks. So basically any service that is sold on HTTP or HTTPS specifically, those could be accessible.

That’s how the existing market. So in order to configure webhooks in market, you can just go to admin integrations and then there’s like the webhook option. Given that you have the right permission access to create an update webhook, you can access this option. And in order to just create a new webhook, it’s pretty simple in market. You just click on new webhook actions and then you can create a new webhook with that.

Can you please move to the next slide? Yeah, thank you. So this slide basically covers on the like all the different elements that you would need to set up while you are creating a webhook. And not all are required, but some of these are required. So basically the URL, this is the required element of the webhook configuration. So here you will enter the URL of the webhook service to which you are trying to connect. So, of course, if there are any required query parameters or UTM parameters that are required, you would need to include in the URL section itself. And then there’s payload. Basically, payload, you would not need payload in a get based request. But if you are posting data to the external service via webhook, then you would have a payload. And you can add that payload, which can optionally also include the lead as well as system tokens. And then the request type, of course. So webhook supports like multiple request type, you could like delete, you could put patch, get or post. So most widely used request types are get or post. So get requested specifically for getting data to market or from an external service via webhook. And then the second post request is post any data from market to the external service through webhook. And of course, the encoding type. Most of the webhook site, I would say they use the JSON. But if there are any other encoding type, including XML that you need to use and that’s supported by the webhook service, you can use that. And all of these details you would find in the documentation provided by the webhook provider itself. And of course, if it’s your custom webhook that you have configured, you would have these details with you or you can get it from your developer. And then the response mapping. So optionally webhook would return a response and optionally you can also save that response to the lead fields in marketo. So you can map the incoming response from webhook to the lead fields in marketo. So this is where you will add the response mappings. And of course, last but not the least, the optional custom header. So if the service that you are trying to connect requires any custom headers, could be an API key, could be a content type as shown in the example snapshot. You can add the optional custom headers to the webhook as well while creating it.

Yeah, so next is about sending and receiving data. So the left pane covers about the sending data to webhook and the right area covers the receiving part. So we’ll start with the sending. So there are a couple of ways through which you can send data to webhook. So basically, if the data that’s being sent is pretty simple, then most webhook would use the query parameter. It’s passed in the URL itself. And if you are posting like a bunch of data, for example, if you’re posting like a lead detail could be a first name, last name or any other system tokens or trigger tokens, then you can be given that webhook the service provider supports. You can also include all of those data right in the payload template itself. And one important thing that I wanted to highlight here is that you need not use quotes for the tokens that you insert in the payload template. Using Marketo automatically inserts the tokens value along with that. It also includes the quotes on its end. So if you include quotes here, they would be duplicated and you will get an error. So yeah, no quotes needed when you are using any lead tokens or trigger tokens. You can just mention the like insert the token as highlighted in the snapshot itself. And when it comes to the receiving part.

Webhook supports Markzion or XML responses. So most of the responses today, I would say they follow the JSON structure. And there’s no limits on number of fieldmappings. You can add as many fields that you want to capture in the response mapping itself. And of course, properties are accessed with the dot notation and array notation. So you can, I think it’s a bit zoomed out in the snapshot. But if there are like, if there is like multiple nested JSON, then you can use the dot notation in order to access the right nested JSON property if you are getting response from the webhook.

The response mappings and the updates on the market or lead person will only happen if the service responds back with a two, like with the two execs code. So if the response is like the 404 or server not available or find the response back, then it’s not going to update the lead data. So it requires a 200 like success code to in order to have the data written back to market.

Yeah, and one other thing that I also wanted to highlight is the usage of system tokens in the webhook response mapping. So I have seen like a couple of users using the system tokens, and these has also been highlighted on the community as well, like through a couple of questions. So using system tokens have led to unexpected behavior. There are cases where this work does resolve to the correct value based on the system token. But then there are like plenty of use cases that I have also realized based on my testing that they don’t always resolve to the correct value. And we have seen areas where the usage of system tokens in the response mapping itself has led to like error error in this response back, written back to market. So it’s always ideal to not, you know, to be on the safer side to not use any of the system tokens in the response mapping. If you want to make any updates, use basis the system token, for example, if you want to write the system date time to a particular field whenever a book is called, you can always create an operational campaign that that’s triggered on the basis of webhook is called trigger. And then in the flow, just run the change data value flow step two, for example, set a date time field to the system date time token instead of using the system date time token directly in the response mapping inside the webhook.

And now we cover a bit of authentication part with the webhook. So overall, like there are like four major authentication types that are available with the webhooks. From left to right, I arrange them in the form of like, most we do the strongest of these. So first, we start off with the basic authentication. So basic authentication involves usage of static user number password. And these are like, these are could be easily exposed. And these most likely these are part of URL itself as the current parameters. So there is no like token lifecycle or granular control with the basic authentication. Next comes the custom headers. So here, like the API keys and these API keys are part of the header itself. But again, similar to basic authentication, these are static in nature, and no x automatic expiration or like, or the automatic expiration is a part of the custom headers. Then comes the API based authentication. So here, like there are the API tokens and the access keys, which are user generated or, you know, managed by users. So since these are managed by the API users itself, they can support the expiration, rotation and the scoping. And compared to the previous two, these offer more control than the static headers itself, for example, custom headers are basic basic authentication. And then the gold standard is the OAuth 2.0. If you have if you would have used the marketer’s API marketer is just the OAuth 2.0 authentication. So if you’re if you know, we have the client ID and client secret, using that we using the identity endpoint, we create a short lived access token, which is valid for the 60 minute 60 minute duration. And using that, we authenticate our API calls to marketer. So this is the exactly that part. So yeah, this is again, provides the like these are short lived access tokens. And yeah, delegated authorization is also there. And again, these are the industry gold standard for secure integrations.

And some top use cases for web books. So one of the top use cases that I have seen is the custom CRM integration with marketer. So if a company is using any other CRM than SFDC or like the MS dynamics, if they have their own bespoke CRM, then web books can be used to send the like sync the data between marketer and the CRM. And the event management use case is also widely used. So using web books, we can not trigger web books to update the event registration event data and sync all of the event related data back to marketer. And then the e comm use case. So with the e comm use case, you can, you know, send marketer data marketer people data to e commerce website or your e commerce engine, and you can get the data from e comm engine through your marketer in order to add people to targeted nurture, send personalized emails out of marketer. And again, sending data out of marketer or getting data to marketer, you know, from cloud, you can also use the web books, you can, you know, send the campaign data reports to cloud storage for easy access and collaboration.

And next, we are going to talk a bit about the error handling mechanisms in web books. So when a web book is called activities locked on the person activity log, and using that we can, you know, trigger campaign flow. So the trigger name is as you can see on the snapshot, its web book is called, and there are certain constraints that can use in order to, you know, handle or manage the errors with the web book. So first is the response response is basically the payload which was received by the request and then the error type. And this corresponds to the reason phrase, the HTTP status message itself. So using the response and error type, we can, you know, manage the known or probably the errors that we think are going to happen when the web book is going to be called.

And yeah, continuing the error handling part. So I have laid down a few best practices with regards to it. So since you are going to be using the web books, you know the service itself, and you can, you know, anticipate the predictable errors. So you can handle the predictable errors with the web book is called trigger and the use the response and error type to basically handle the predictable errors with the smart campaigns itself. And using that you can also automate the error recovery. So in case the service gets busy and the web book is not getting successful, you can add it to try retry mechanism built it out within marketer itself to automate the error recovery. And for any of the unexpected errors, you can set the alerts that can be sent to you or your developer repeat the error notification as well. And of course, you can also create an investigation list, wherein all people who have encountered a error when the web book is called, you add them to a static list and then you can investigate that activity log.

Yeah, let’s talk a bit about web book limitation now. So yeah, web book flow step is only valid in trigger campaigns. Although there are ways through which you can, you know, call a web book from the batch campaign by nesting the campaign using the campaign is requested trigger, but that’s not very ideal and recommended approach. And marketer usually waits for a time period of 30 seconds for a web book call to return response before terminating.

The if a response is going to 30 seconds, then marketer is gonna log this like timeout error and web book are processed one at a time. So if they if like 1000 records are called a web book, they are going to process one at a time by marketer. And again, the execution time is at the mercy of the response time of the service. So for example, if a service is you know, like takes a 50 millisecond to execute a single web book server call, then overall 400,000 times when the service is called, it’s gonna take a time period of around 1.5 or so always know that know the latency and the time period through which the web book service is going to respond and process a request. I think that’s a good segue to know to some the georges part. So yeah.

Perfect. So now that Darcy has covered web hooks, I’ll get into self service flow steps and what they are. Go to so footsteps are basically custom actions that we can add to our marketo instance.

And as marketer users, we’re all familiar with this list on the side here of actions that are available inside of smart campaign, things like change data value or send an email or change program member status. But the question is, what do we do when these actions aren’t enough? And you want to do something beyond these built in actions like send an SMS or validate an email address, send a prompt to an AI. Well, as Darshil showed us, we do have web hooks. Web hooks are super useful, as you saw, but they also come up with serious limitations, which Darshil was talking about a little bit there. You can click.

And this is why self service flow steps are, in my opinion, a massive upgrade to web hooks.

They do have the same actions, but without the limitations we face with web hooks. So let’s get into that.

Go to the next slide.

So what makes self service flow steps a major upgrade to web hooks? What do I mean by that? Well, to start, if you’re familiar with the web hook, you see that the flow step is here. You just get one field and that is which web hook to call.

And that’s it. With self service flow steps, the option below here, you see that they are hand purpose made for whatever action we’re doing. They have a label saying what it’s doing, an icon, they have fields tailored to the custom action that you’re taking. And here you can see I have a flow step that sends a prompt to an AI and saves the response. I have fields for prompt, specific field for model, and then I can choose specifically for my flow and where the data comes back to. And so that’s just the surface.

The key differences between web hooks and flow steps is what makes them really stand out. Under the hood, there are several differences that make these self service flow steps hugely forward over web hooks.

First of all, they work in batches. As Darshal said, web hooks have to be run by one by one.

Next, they have custom fields. They, like you saw in the last slide, you can have your custom fields specifically tailored to whatever action you’re taking.

They have dynamic lookups. They have easy to use interface. They run asynchronously and will wait for the response before continuing to the next step in your flow.

But let’s get into some details on how that all works for us.

Let’s imagine you have a network of gyms with many locations and thousands of members. And say you want to send an SMS out to all of your members for a big event.

Yes, you could use a web hook and send a text message, but you have thousands of members. And how are you going to send them all at once? First, web hooks can’t be run in batch. If you click, if you try to run them batch, it will look like it works fine. But if you look at the activity log, you’ll see this. Failed cannot call web hooks in batches.

As Darshal mentioned, there’s also a way around this. If you click again, however, as he also mentioned, if you go around this, your backend service still needs to be able to handle that volume. And do it within that 30 second timeout limit that you have with web hooks.

So some of these requests will timeout. And worse yet, within Marketo, you won’t actually know if the SMS was sent or not. Because a timeout error doesn’t mean that the SMS wasn’t sent. It just means that Marketo doesn’t know what happened. It ran out of time.

This happens because, as Darshal mentioned, web hooks are sent individually, but all at once. And only wait 30 seconds for response. So if you run a flow with 10,000 leads, they will all get sent at once to your web hook. And it needs to process all of them in under 30 seconds to actually work.

Flow steps, in contrast, are sent in batches of 1,000. So for 10,000 members, it just becomes 10 batches that your backend needs to handle.

And that’s the easiest for the server. And there is no time limit. The request is sent along with a callback URL. And whenever the response is ready, whenever your backend server has handled the process, it just sends back the answer on its own timeline. So bottom line, large batches are no issue for self-service flow steps, but they are with web hooks.

Next, say each month you want to send out a big email with a recap of your user’s gym activity. You can create a flow step for getting that information from the backend system. And then you can put that in the body of an email with a token. And with flow steps, a flow like this will automatically wait for the response to get back before trying to send the email. That’s not the case for web hooks. If this was a web hook in the first step, it would immediately try to send that email if the response got back.

So if you try to run this web hook, you would get a blank email, or you’d have to create a workaround to wait for that response to get back.

So what if a member hasn’t had any activity? So you want to send this email of their activity, but what if they don’t have any activity? That would be a pretty sad recap.

So maybe instead of that, you want to send them a motivational reminder and tell them to get back to the gym. How can we do that? Well, unlike web hooks, flow steps come with their own unique activities. For each self-service flow step you have, it has its own activities and own filters where we can store information about the action. Even if it’s not stored on the lead record itself, we can store this in the activity. And so then with that activity, we can use those in triggers and filters in our smart campaigns. So here we can just add a filter for member activity updated and use number of visits as a constraint. So if it’s greater than one, we can go ahead and send that recap to the user. But if it’s zero, we can just trigger that motivational reminder email instead.

Another massive benefit that flow steps have over web hooks is dynamic dropdowns, which can get their options from a back-end service. So for example, imagine again you have this massive gym network and you created a flow step to activate members in your back-end system. With a large gym network, you may be opening and closing gyms locations regularly, so you might want to keep that location list in mind. With the flow step, you have the dynamic dropdown like this that pulls from your back-end system and always shows the current active locations. So this data is automatically updated every 24 hours for picklists by default, but you can also manually refresh that in the admin section. And this allows to keep data and settings fresh.

And unfortunately, web hooks don’t have any similar functionality.

So a big question. How do you build and implement these custom flow steps? So you kind of have three different flavors. If you want kind of a pre-built all-in, the only pre-packaged solution I’m aware of right now is Workato, which has a component that’s specifically tailored for self-service flow steps and will let you build them in there. Beyond that, you can build this with an I-Pass, an integration platform.

N8n is a popular one. It’s one that works well for this because to build it, you have to have some specific features. Mainly, you need to have several endpoints that it can connect to. So there’s some that don’t work so well and some that work. And I have a pre-built sample workflow.

I’ll show in the next one that you can download and implement in N8n yourself. And the final one is custom code. Obviously, you can create this with custom code if you are a developer.

You can build this and deploy it in Adobe IO. There’s an example for IO on Adobe’s GitHub. You can deploy it Azure AWS, repl.it, wherever you want.

So as I mentioned, I have created an N8n template. Here you have the link and the QR code if anyone’s interested in downloading that. And you can see a screenshot of that workflow here.

Don’t get intimidated by it. I know it’s a lot, but I think once you dig into it, it’s not that complicated. It’s just a kind of fancy wrapper on top of a webhook in the end.

So I think this template could be very helpful. And even if you’re a developer, it’s kind of great to be able to see it visualized how the data flows and all the endpoints there.

So when it comes to use cases for self-service flow steps, let’s get into installing.

Installing is simple. Just go to the admin section. There’s a section called service providers.

You can see all the services, which is the self-service flow steps that are installed. If you click on add new service, this will pop up. You just need a URL where your service is. So a lot of the configuration that you saw with webhooks is pre-done with flow steps. So you have your developer or yourself who pre-does all of that mapping and all of that. That way it’s just an installation URL and that’s done. So if you click again, you’ll be asked for an API key. This just secures your flow step so that others can’t use it without your permission. And if you click again, here you can set the mapping. So within your flow step, you set what fields are going out of Marketo and what fields are coming in. And here the user, as you’re installing it, you can set what those map to.

Unlike the webhooks, it’s a nice user interface. You’re just picking from a dropdown. You don’t have to use the dot notation.

It’s very clear what fields you’re mapping to and that it’s a real field and what type of field. So it makes it a lot easier.

So when it comes to the use cases for self-service flow steps, they’re often much the same as webhooks, but more specifically where we can take advantage of the key benefits of the self-service flow step. So that is longer running processes that take more than 30 seconds to complete, processes that need to be run in batches, or processes that require more custom fields and set up inside the smart campaign. Custom objects is a powerful feature for Marketo, but there’s no native flow action for custom objects.

With self-service flow steps, we can add that built-in action for creating, updating, and deleting custom objects directly in our smart campaigns.

Next, generative AI. Generative AI has many practical uses in Marketo.

People are finding new ways to use it every day. We can use self-service flow steps to connect an AI model, pass it a prompt, and get a response that we can use for things like lead scoring, data categorization, sentiment analysis, hyper-personalizing content.

These are great use cases and these AI models are amazing. But the more you ask of them, the longer it’s going to take the process. Often it can be more than 30 seconds, especially if you do it in large batches. It’s a great use case for these flow steps.

Next, lead enrichment is a great way to use flow steps.

These are definitely processes that can take more than 30 seconds and you want to run them in batches.

So a great use case as well.

Internal messaging systems. We can expand alerts beyond just emails. We can send messages to teams or Slack and even make them interactive to create a dynamic process for approval workflows or anything like that.

Next, deduping. There’s a flow step for… You can merge within Marketo, but doing it in bulk is always a challenge. And even through the API, it’s a process that takes quite a long time. Even with the API, it’s the longest running process that Marketo’s API does.

So with the self-service flow step, we don’t have to worry about it timing out. We can run whatever checks and updates that we need to in the back end and have it run smoothly.

And finally, we can use it for CRM integrations. So we can expand what we have for CRM integrations, write and read from other objects than the standard ones, or build a completely custom sync with a CRM. So we have built-in actions, of course, for CRM. But if you use a CRM that’s not Dynamics or Salesforce, or if you want to write to other objects or do anything custom, it’s a great feature for that.

Yeah, I’m getting to Q&A.

All right, cool. Thank you so much for sharing your insights on that. We did have a very generic question in the chat. I was just following that about the recordings that will obviously be published afterwards, also on the user group BEMI page. So also then we can actually then access the recording afterwards.

All right. So just quickly checking the chat just to see if there’s any further questions.

We do have one question. Are there actually any other end-to-end examples like the available, maybe covering different platforms or use cases? So therefore, I’m Josh, you were referring to that a bit, right? In regards to platforms and for the use cases, is there anything else that you would want to add to that? And of course, Josh, you will also share your perspective on it. Yeah, in Adobe’s GitHub, there is an example. I’ll try to put it in the chat.

For a full step that runs in Adobe IO, that is for calculate formula. So there’s an end-to-end example there.

I’m trying to think if I’ve produced any other.

I’ll look for other examples, but that’s the one I would look at. That’s a great one. And then, yeah.

All right. Okay. Let’s just give the audience a bit of time because usually there are a ton of questions around that. Maybe people just need a bit more time to write that down. One thing that I always find interesting is, is there any recommendation from you guys’ experience now in already setting those up or having a ton of use cases around that? Any tips on how to start out with it? Like if someone really wants to say, I would want to try the first use case on, for example, self-service post-ups. Josh, any tips and tricks around how to get started best on it? I think, yeah, take the end-to-end examples, install them, then start changing things, break them, see where, have an idea in mind, try to repurpose them for what you want to do. And I think just getting there, starting with an end-to-end example and then getting your study is the best way to learn how it works and see the flow of data and all that.

All right. We actually have two pretty similar questions coming in more or less at the same time. Josh, I guess that’s also probably one for you to take because people are interested in the main differences between building self-service flow steps in an end-to-end, for example, versus for Carto versus custom code, like what you were showing on the slide.

I’m sorry, what was the question? The questions are actually what’s the main differences between the different options that we have to build self-service flow steps, for example, in an end-to-end, what you mentioned, versus also custom code, like what you were showing on the slide. And what I was actually saying, especially in terms of scalability, governance, long-term maintainability. So can you emphasize on that again? Yeah. So as you go from a prepackaged solution like Workato to a fully custom coded solution, you gain a lot more complexity. You get a lot more complexity in what you have to do and what you have to build, the things you have to think about, but you gain a lot more control. So finding where you want to be along that line or starting at one end and working your way to where you can start with a Workato and then you might find that I know I’ve built solutions with that and you find the pre-built package or their module doesn’t let you do certain things. But if then I’ve built it in an 8n, now I can do all those things. I have a lot more control, but I have to now actually build all the steps and make sure the data is flowing. So a lot more complexity, but a lot more control. And then when you get into custom code, now you’re talking about architecture and things like that. Maybe an 8n doesn’t process things as fast as you want or in batches that you want or doesn’t have the connector that you want to use. Now you can move into custom code, but you have to worry about things like queues and server dimensions and things like that. It gets more complicated the more custom you get, but you get a lot more control.

All right, thank you. Juan is actually so kind to also drop in a few more resources to chat, which is fantastic. One thing that I always like to ask as well, just from your personal experience, I mean, Josh, you were sharing a ton of examples on use cases where to apply self-service closed steps. What is actually your favorite use case that you have implemented so far yourself? I think the AI ones are my favorite just because of how much you can do with them.

Not just myself, it’s one of those things where it’s a force multiplier. If you build those that calls whatever AI model you want to use and you put it in the hands of marketers, it’s a force multiplier for their creativity and their ideas. The things that they can do are incredible.

I think a lot of people can relate to that. Dashir, is that actually also your favorite use case or is there anything else from your perspective that is the one that you like most? Yeah, I think I actually covered this in one of the past DeepDives last year. For one of our clients, we built the adaptive lead scoring model. We sent all the data like market activity log to the compliant service. That service was using the AI model, the trained AI model based on the past engagement, past conversion data and the scoring thresholds to determine the right threshold for a person and the right stage for the person given that they have done certain activities. That was really cool use case, lots of learning on that use case. That’s one of my favorite use case.

All right, thanks for sharing. Okay, just looking at the chat, there’s actually, there’s just one more comment coming in.

A very powerful use case that Juan is actually mentioning is when you update or validate a big amount of records because of the time limits of webhooks. That’s also what you were mentioning and it’s the possibility of running them in batches. That is what you were referring to Josh as well, right, in the slides. That is one of the major benefits that Salesforce first steps have in comparison to, for example, Webhooks.

Yeah, I would say there are times when I would prefer to pay webhook over a Salesforce host step. Well, steps obviously have a lot of advantages but if you’re doing a process that you know is going to take less than 30 seconds, you’re only going to run it in a trigger campaign, then you don’t need the complexity of a Salesforce host if a webhook will do that perfectly for you. Well, it’s actually maybe just deriving back to one of your first slides, Kasil, on the webhook use cases. Because especially very often that is obviously used in CRM integrations, right? So do you have some decision tips and tricks for the audience here? Like when you would actually go for a webhook instead of a different type of integration to use? As Josh mentioned, if your use case is being supported and can do with the webhook, the complexity is not too much, you are not expecting a ton of records to pass through that, then you can go with the webhook and ultimately it also depends on the type of service to which you are connecting. So for example, if the service to which you are connecting requires the stateful connections, then webhook might not be a good choice. So webhooks are stateless in nature, so all the data that you need to send to webhook, you need to include it in the single call itself. It cannot preserve data across states, so that is one of the other limitations of webhooks. So again, if you are going to only, for example, send the event data, registration data, or any of the, if you’re using the Peacebook CRM, like you were talking about the CRM example, if you’re not expecting too much volume, you can have a compatible service to which you can connect, then webhook would be an ideal choice, I would say, instead of a self-service flow step where you would need to go through, I would say if the service is incompatible or if you need to do customization using coding and developers, then yeah, if that’s not required, you can go with the webhook in my opinion. All right, thank you so much. I don’t see any further questions coming in the chat, so I’m guessing the audience is probably good for the moment, but as I previously said, there will be some more sessions coming up. Obviously, I’m always recommending the Champion Office Hours as well, because then it’s really like that open question format, so also if you have any further questions on the topic of today, please feel free to also drop them in there. So in that case, I’d say we’re closing the session a bit earlier for today. Thank you so much to Darshil and to Josh for sharing your insights on those very interesting topics, and at least I have learned a lot. I’m sure the audience did as well, so thank you for taking the time. Also for everyone else who is taking the time to join in today, and I’m really looking forward to seeing you guys in one of the upcoming Champion formats as well. Have a good rest of the day to everyone. Thank you so much. Bye for now.

Take your Marketo expertise to the next level! This deep-dive session focuses on two powerful features that unlock the gateway to integrating your Marketo instance with external applications: Webhooks and Self-Service Flow Steps (SSFS).

We’ll start with practical, step-by-step guidance on how to configure Webhooks. Next, we’ll explore Self Service Flow Steps, explaining how to build, implement, and leverage custom flow steps to extend Marketo’s native functionality.

The highlight will be a series of real-world use cases, culminating in a demonstration of how to combine these Marketo features with AI capabilities to create marketing experiences that move the needle!

Agenda

  • Welcome & Session Objectives

  • Part 1: Webhooks in Marketo – The Gateway to Real-Time Integration

    • Configuration, security, and debugging
    • Use cases: Instant CRM updates, external system notifications, data enrichment
  • Part 2: Self-Service Flow Steps (SSFS) – Extending Marketo’s Core Logic

    • What are SSFS? Architecture and development overview
    • Key differences between SSFS and Webhooks
    • How to build, test, and implement a custom flow step
    • Use cases: Custom calculations, AI prompts, niche third-party integrations, complex data validation
  • Wrap-Up, Key Takeaways & Q&A

Target Audience

  • Marketo Users Professionals already using or considering Marketo who want to expand their marketing capabilities.
  • Marketing Operations Professionals MOPs teams responsible for Marketo administration and data quality
  • Marketo Administrators Those managing database architecture, integrations, and technical infrastructure
  • AI/Automation Adopters Organizations preparing their Marketo instance for AI-powered capabilities
  • Data-Conscious Marketers Teams looking to improve data quality, reporting accuracy, and campaign effectiveness
recommendation-more-help
7bb6a267-e711-49b2-a29d-57541f7f2fe8