
A flow that waits 40 minutes, then fixes an empty field.
That is what one of the Marketo programs did. A contact comes in, the marketing channel field is blank, the flow waits 40 minutes and then fills it. Nobody on the call could tell me why 40 minutes. Nobody could tell me why any wait at all. If the field is empty, fix it. There is no reason to wait.
We are moving this client from Marketo to HubSpot. Salesforce stays as the CRM. This week I sat with their marketing lead on a screen share and went through every operational program in the old instance, one by one, and for each one we decided whether it gets built in HubSpot. Many of them do not.
The instinct to rebuild everything is reasonable
I want to be fair to the one-to-one approach, because I understand where it comes from.
The old instance has been running for years. Every flow in it was put there by someone for a reason, and most of those people have left. The safe-feeling move is to replicate the whole thing, because then nothing that used to happen will stop happening. There is also a commercial pull in the same direction. A partner who rebuilds everything bills for everything.
And you do need the full inventory. You cannot decide what to drop without seeing all of it. Where it goes wrong is treating the inventory as the build list. The inventory is the input. The build list is what survives the question.
The question for each program is not "can we rebuild this". It is "what does this do, and does HubSpot already do it". When you ask it program by program, the answers fall into three groups.
Group one: HubSpot already does it
First conversion and recent conversion. Which form was submitted and on which page. In Marketo each of these was a flow someone built and maintained. In HubSpot they are standard analytics properties, populated by the system the moment the submission happens. Nothing to build.
Original source for paid social is the same. LinkedIn and Facebook lead ads bring the contact in with the channel already attributed. The UTM parameters are empty on those submissions, because a lead ad has no URL to carry them, and it does not matter. I do not like relying on UTMs for attribution anyway. The platform tells HubSpot where the contact came from.
Soft bounce handling and spam cleanup. System behaviour. HubSpot does it whether or not you build anything.
Why this matters: every program in this group that you skip is one less thing to test, document, and explain to the team in training. The count adds up faster than you expect.
Group two: it only existed because of Marketo
This is the group that surprises people, because the programs look like real logic until you ask what they do.
The 40 minute wait is one. Here are the others we found on the same pass:
- A chatbot integration flow that has not fired since 2024.
- An unsubscribe program that had processed two people.
- A flow populating a LinkedIn ad creative field. It had been running the whole time. Nobody on the call recognised the field or could say who used it.
- A flow that reacts when a record is deleted in Salesforce. The client does not delete records in Salesforce.
Two checks find most of these. First, look at the last run date and the enrolment count. A flow that ran twice in three years is not business logic. Second, ask the person who owns the process to explain the program in one sentence. If the answer starts with "I think it used to", it belongs in this group.
I have been on the wrong side of this myself. The first client we ever put on Marketo, fifteen years ago, we sent an email to the entire database because nobody had set the smart list. Marketo instances collect logic that nobody remembers. That is not a criticism of Marketo. It is what happens to any automation platform after enough years and enough admins.
Group three: actual business logic
This is what gets rebuilt, and rebuilt properly.
Industry to vertical mapping, because their segmentation depends on it. The ICP check that combines country, company size, and industry, and the tier score that fires when the source campaign changes. Together those two set the qualification status the sales team works from. A region rollup. Segmentation lists that the campaigns actually use.
Rebuilt properly means rebuilt in HubSpot's shape, not Marketo's. Several old source-correction flows collapse into one workflow with branches. Wait steps come out. The logic survives. The scaffolding around it does not.
Do this pass before you scope, not after
The sorting changes the build list, and the build list is the estimate. If you scope a Marketo migration by counting programs in the old instance, you will scope a rebuild of group two, and the client will pay for the 40 minute wait to be recreated in a new system.
Do the pass first. Screen share, program by program, with the person who runs marketing operations in the room. It takes a few hours. It is the highest value few hours in the migration.
If you have done a Marketo to HubSpot move and found something you rebuilt and later wished you had not, I would like to hear what it was.
by Mark Fisher on September 08, 2026
CTO of Penguins Strategies. With over 20 years of business experience, Mark has modeled a perfect blend of marketing technology and strategy to take businesses to the next level. Mark is an expert in HubSpot implementation



