I always say this: There’s most likely more than one way to implement something in a gigantic and versatile platform like Marketo. An astute platform user would spend some time deciding which would be the best and most optimized way to meet the given requirements.
One of these many items is creating a setup that dynamically pulls a list of people based on certain criteria. Without thinking too much, you can technically create either a smart list or segmentation and complete the ask in most cases, but which is best suited largely depends on the use case, capabilities, and understanding key differences between the two.
First of all, let’s understand how each operates: A smart list pulls the dynamic list of people only when it is refreshed, accessed via GUI, or queried by another smart list. It never refreshes on its own, unlike segmentation, which refreshes and moves a person to the correct segment as soon as there’s an update on the person record (e.g., on a Change Data Value).
For a fairly complicated smart list logic running on a massive database, the update could take up to a few minutes and is undoubtedly very resource intensive.
On the other hand, segmentation updates always run in the background, making sure people are in the correct segment at any given point in time.
Apart from the above, there are certain key differences between both, as discussed below:
Segmentation can be used to add dynamic content to emails, landing pages, and snippets while smart lists can’t be used.
There isn’t any hard limit on the number of smart lists you can create, while you’re limited to a max. of 20 segmentation assets in your subscription.
You can reference a person’s segment membership in the velocity script, unlike the smart list membership data (velocity can’t query smart lists).
Segmentations are more suited for use cases where you need to reference it a lot and in multiple places. e.g., a segmentation for Industry, Suppression list, etc.
Segment memberships are written on a field on the person record, unlike the smart list memberships
A Change Segment activity gets logged every time a person’s segment gets changed (snapshot below), unlike a smart list where no activity gets logged when a person becomes eligible for it.
Complicated smart lists are strenuous to troubleshoot, as there’s no record of when the person became eligible (or ineligible) for the smart list in the activity log. You have to manually check the activity log for all relevant updates to figure out whether the person was or wasn’t a member of the smart list at that time (given that data hasn’t been wiped out due to Marketo’s retention policies and assuming that the smart list hasn’t been updated since then!)
With all being said, can we conclude that one is ALWAYS better than the other? No, certainly not! Both have their own merits and demerits, and it’s a marketer’s job to understand those and determine which would be the best for the use case at hand.
I hope you found this deep dive insightful. Let me know in the comments below if I missed covering anything.
Something to keep in mind is how it will be used. As you mentioned, Segmentations are resource intensive. So if you need to immediately use a Segment after a corresponding data value has changed, that may be problematic.
For example: Let's say you have a form that is enriched by a data vendor setting Industry. When someone submits the form, there is a choice step in the Flow to add them to a specific list based on Segmentation. It's very possible that the Flow will run before the Segmentation is set.
In this case, a Smart List is preferred.