SetUpPagesInNotionForEachSOPType
Before you even type a word into Notion, take a deep breath and decide what counts as an SOP for your team. In my case, things kept slipping through the cracks because we were mixing actual process docs (like how to publish a post with SEO metadata) with one-off guides (like how to embed a TikTok in an iframe — why isn’t this intuitive yet??). So, I made different Notion pages for each major category:
– BlogPublishingWorkflow
– SEOChecklist
– ToolSetupZapierMakeChatGPT
– VisualAssetRequests
– GuestAuthorProcess
Each one gets its own top-level page, not just a toggle or a subpage somewhere deep in a rabbit hole of old meeting notes. Trust me, Notion will swallow unlinked pages and you’ll never see them again unless someone pastes the link in Slack. Set these in a dedicated SOP database or workspace section, and name them something boring-but-clear. If your team is cute with titles, use aliases for fun, but keep the Notion page name utilitarian. That way when you’re frantically command-P’ing at 5:59pm, you can still find “SEOChecklist” 😅.
AddInlinePropertiesForFastScanning
This one’s not mandatory, but if your content team hits Notion with speed and chaos like mine, you’ll want to add inline table properties to each SOP to help people quickly filter or verify:
– LastUpdated (use a manual date prop — don’t trust Notion’s “last edited” tag because even adding a comment counts)
– Owner (who wrote the SOP and who updates it)
– Stage (Draft, Ready, NeedsUpdate)
– UsageFrequency (Daily, Weekly, Occasional)
You set these up as properties in the table view (or board view — if you like visuals). But here’s the trick: embed these even on pages that are just static SOPs, otherwise someone will ask “is this still valid” every two weeks in Slack. Or worse, won’t ask at all.
WriteRealStepsNotAspirations
Found myself rereading one of my old SOPs yesterday and had to laugh — it said “Final edits go through our editor” but didn’t clarify where or how. Google Docs? Notion comments? Sentences whispered into the void? 🤷
When you’re actually writing SOPs, describe the exact thing the person does. Example:
✅ Bad: “Upload the blog post”
✅ Better: “Paste final blog copy into WordPress, then notify editor in #content-review Slack channel with the link”
Also, screenshots are great — until they stale out three weeks later because the UI moved one button over. So I’ve started describing location instead of relying fully on images:
“Click the gray Share button top-right in WordPress — not the blue one inside the block editor”
That has held up even across a theme change. Words over pixels, unless the UI is truly confusing (yes, Airtable, I’m looking at you).
LinkThemWherePeopleUseThem
This is probably the part I’ve messed up the most times. You write a beautiful SOP. You drop the link in your content team’s Slack once — maybe even pin it. But a month later someone asks “where’s that doc for compressing images?” and you realize they couldn’t find it because it’s not where the task originated.
So wherever your team assigns tasks — whether that’s Trello, Asana, ClickUp, or a weird Google Sheet someone made in 2018 that still runs the whole business — embed the SOP links right there.
In our case, I added a shared Notion block containing the SOP link + summary directly inside each recurring task in ClickUp. Something like:
“`
📄 ImageOptimizationSOP: Use Squoosh.app, reduce below 200KB, then upload to /assets folder in Drive. Shrinks gifs too.
“`
It’s a little thing, but it stops 90% of back-and-forth. Bonus: I created a Notion template for “Recurring Task SOP” with a callout box that includes the SOP link, a last review date, and checklist items inline. Now when people duplicate the template, the SOP lives right there 😎.
KeepChangeLogsNearTheTop
Here’s the thing — people stop trusting SOPs when they don’t know how old they are. And Notion doesn’t make the change history easy unless they’re weirdly obsessed with checking the little hidden menu and watching every edit like a Netflix docuseries.
So I slapped a simple “Change log” toggle at the top of every SOP. Literally a Notion toggle block with bullet points that say stuff like:
– 🗓️ Apr 3: Updated step 3 to reflect new WordPress layout
– 🗓️ Mar 12: Added detail about image alt tag character limit
Does it get updated every time? No. But when it does get updated, teammates feel more confident they’re reading something alive and current. Because Notion’s Last Edited date lies. I’ve had it update the timestamp just by toggling a section open.
AssignSomeoneToBeTheSOPJanitor
Nobody loves this job — keeping SOPs clean, current, and non-duplicated — but someone has to wear the janitor badge. In our case, I rotate the role every quarter. The SOP Janitor checks every workflow page, pulls edits from real experiences that happened in Slack or Looms, and archives anything that doesn’t work anymore.
We have a Notion checkbox buried at the bottom of every SOP that just says: “✅ Reviewed this quarter” and a table where we log who did it last. That’s it. Not fancy. But it gives the docs a heartbeat.
Also, make it okay — expected, even — for team members to write “this doesn’t work anymore” directly inside the SOP as a comment. Nobody remembers to DM you. But if they drop a 🙋♂️ next to a broken Zap step, you see it in your inbox the next day and can fix it before someone else gets stuck again.
UseTemplateButtonsToSpeedUpDocs
Notion’s template button is criminally underrated. I started using them to embed consistent formats inside longer SOPs. For example, I made a button that says “🎯 AddNewTip”, and when you click it, it drops:
“`
▶️ Tip [click to toggle]
Text explaining this fix goes here. Include why it worked or what didn’t.
“`
That way, when an SOP evolves — like when we found a faster way to publish blog posts with fewer revisions — anyone on the team could add their insight in a structured way. And it wouldn’t break the doc’s flow, just added another toggle stack.
Same goes for errors. I added a “LogBug” template button to our Zapier workflows doc, since that app breaks about twice a week in new and exciting ways. It inserts a quick block like:
“`
🧨 Bug [click to toggle]
Observed: Webhook fired twice
Expected: Fired once
Fix: Added filter for unique ID in Zap step 5
“`
Now we have a running history of what’s gone wrong — basically a DIY audit trail — and can stop repeating the same panicked message: “Why is this Google Sheet full of duplicates again??”
ArchiveBrokenFlowsAndMarkThemDead
Last year we had this dream of exporting blog content from Notion straight into WordPress with some third-party tool. We built out the SOP, gave it a fancy title (“🛰️ OneClickBlogDeployment”), and strutted around like we’d fixed publishing forever. Two weeks later, the plugin bricked itself during a WP update.
But the SOP stayed up. People kept finding it. And yes, someone tried it again months later and ended up with corrupted HTML inside the WordPress classic editor — which took me a full afternoon to untangle 😐.
So now: If a workflow dies, we mark the SOP as DEPRECATED inside the title and move it into an Archived folder in Notion. Inside the page, I write a short autopsy like:
“`
🪦 Deprecated
This SOP is no longer in use because Notion2WP plugin stopped supporting rich embeds. Trying it now will cause unexpected formatting errors.
“`
I keep these pages around because they still contain useful concepts and sometimes artifacts we want to reuse. But I make sure search won’t surface them first — add a tag like “Deprecated” and remove from active databases. Because Nothing is worse than someone following a zombie SOP that looked alive.