Marketo released Self-Service Flow Steps (SSFS) last summer and I’ve been shocked that more people haven’t been talking about it. I’ve been working with Marketo over a decade, and for me this is an absolute game changer. I have spent the past year building dozens of custom flow steps, and I’ve been amazed with the things we’re able to do that were previously impossible. The biggest challenge I’ve had is the lack of information available. While Adobe has done a great job with the documentation, there doesn’t seem to be many people in the community using this feature, or at least none writing about it. That is why I want to share my experience. Primarily, what Self Service Flow Steps are, and how they solve 5 major limitations of webhooks.
In Marketo, smart campaigns are where all of the action happens. You are probably familiar with the standard list of flow actions. And, if you’ve used Marketo for a while you’re probably also aware that this list hasn’t changed much over the years. Sure, it has most, if not all of the core features you could want as a Marketer, but as Marketers we are always pushing the limits and often times there are advanced or custom features you really wish it had that just aren’t there.
Fortunately for us this is where Self-Service Flow Steps come in. Self-service flow steps allow us to expand our list of flow actions, adding custom actions beyond the typical pre-defined ones. This means that virtually any action you need – from validating emails and updating e-commerce orders to sending WhatsApp messages or even utilizing AI, can now be incorporated into your smart campaigns.
In my view, Self-Service Flow Steps are not an alternative to webhooks, but rather an evolution. While they both allow us to connect Marketo to outside services, passing data out, and return data back, these new flow steps solve 5 major limitations webhooks have had since their inception.
Webhooks only have one flow action which they all share, “Call Webhook”. At the flow level, you only select which webhook you want to call. This means variability between campaigns using the same webhook must be done via program-level {{my.tokens}}.
For example, if you built a webhook to set registration limits for programs. When called, it would check the set limit and number of people currently registered, then either registers the user, or waitlists them. Those limits can be viewed on the Tokens tab, but on the Flow tab itself they’re not viewable or configurable.
✅ Self-Service Flow Steps in contrast, allow customizable flow step fields which can be set in each smart campaign providing a much-improved user experience. This alone expands the possibilities well beyond what webhooks are capable of, as each flow step can be highly customized at the flow level.
Notably, these fields also include dynamic dropdowns which get their options from a backend service. For example, imagine you have a Gym network and you created a Flow Step to activate memberships in your backend system. You may open and close locations regularly, so you could have the dynamic dropdown that pulls from your backend system and always shows the currently active locations.
* The dropdown values update once every 24 hours or you can trigger a refresh in the admin area.
Webhooks require the configuration of URL parameters and manually written JSON, which can be cumbersome.
✅ Self-Service Flow Steps simplify the process by offering packaged solutions where fields can be pre-mapped and offer a graphical interface for making adjustments. This makes the entire setup more straightforward for non-technical users.
Webhooks can't be called directly from a batch campaign. While you can work around this by having your batch call Request Campaign, their scalability is still limited. For example, while you could use a webhook in a trigger campaign to verify the email addresses of leads as they enter the system, you couldn’t call that same webhook for all the records you already have in your database since the volume would be overwhelming.
✅ Self-Service Flow Steps are supported in batch campaigns. Allowing for more efficient processing of larger tasks. The data is sent to the service in batches of up to 1000 records, which gives us many more options for how we can use them and makes it far more efficient from the backend as well.
Webhooks depend on server responsiveness. They must complete in 30 seconds or less. This limits what we can do with the data. For example, if you are asking an AI model to generate complex content, the process could easily exceed this limit.
From the Marketo webhooks documentation
✅ Self-Service Flow Steps operate asynchronously. Data is sent to the backend service in batches along with a callback URL, like a return address. The service can then send back the response whenever it’s ready whether it takes 5 seconds or 5 days. This greatly expands what solutions are possible.
Webhooks can send tokens ({{lead.tokens}}, {{member.tokens}}, {{my.tokens}}, and so on) to the remote service. On the receiving side, webhooks are limited to updating only lead fields, not program member fields or other areas in the database.
✅ Self-Service Flow Steps support both standard and custom context data on the outbound side. This includes lead data, program, smart campaign, program member and subscription context data, offering a broader data scope for operations. On the inbound side, we are of course able to pass back lead data, that will update lead fields, but we are also able to pass activity data, which will show up in the lead activity log.
This activity data can also be used for filtering and triggering in smart campaigns giving better targeting options. For example, if you used SSFS to validate an email, you may receive a lot of data back about the user’s email provider including items which we may want to use to trigger, but not save on the lead record.
A webhook might still be the go-to choice for some scenarios. These scenarios include:
The introduction of Marketo's Self-Service Flow Steps is more than just a feature—it's a breakthrough for smart campaigns. For us it has been an invitation to think bigger, to revisit old challenges, and reimagine what is possible. The new reality is, we can now add to our smart campaign, basically any action we can think of. Sure, there are some technical hurdles to getting set up but the potential is endless. I would love to hear people’s opinions on this topic. Are you using Self-Service Flow Steps? What have you built / what would you build?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.