Why track draft status in Workflowy at all
Before I show you how I got tag-based tracking working, let’s just talk about what the actual problem was. I had dozens of ideas — blog posts, automation drafts, failed Notion databases, command line scripts I never finished — all scattered in one giant Workflowy outline. The issue: if I didn’t work on something right away, I’d lose track of where it stood. Started writing vs still an idea vs ready to publish? No clue. I’d scroll past something a week later and wonder: did I already write that one?
Workflowy doesn’t have built-in status tracking, but it does have one superpower: tags. These little #hashtags you can attach to any item. Which sounds too simple. But once I started using tags like #draft and #ready and pulling them into search views, it totally changed how I use Workflowy. Like, it became my quiet little status board that doesn’t look like a board. No drag drop, no kanban. Just collapse and expand as you go. ¯\\_(ツ)_/¯
Choosing the right status tags
So the first time I tried this, I overdid it and created eight different tags: #draft, #started, #editing, #imagesneeded, #scheduled, and so on. It looked organized at first, but then I ran into a very dumb problem: I couldn’t remember which ones I’d used already. I’d start tagging something #inprogress and forget that I’d used #started before. My search pages turned into soup.
Here are the only ones I actually use now:
– #idea — literally just an idea, still in bullet form
– #draft — if I’ve started the writing part
– #needsreview — once it’s basically done but I hate it 🙂
– #ready — this means it’s done enough to post today
That’s it. Simple and enough to build workflows around. There’s no need to track every microstate of a blog post. “Needs title” or “has image” can just be notes inside the bullet.
Setting up tag-based saved searches
Once I was clear on which tags I’d use, I set up a set of saved searches. These are lifesavers. In Workflowy, you can filter by any tag, then click the three-dot menu and hit “Save as new search.” That gives you a persistent sidebar link that auto-filters your outline to just that tag — live updated. It’s like making a filtered view in Airtable minus the interface clutter.
Here’s what mine look like now:
– “Ideas” → search: #idea -#draft
– “In Progress” → search: #draft -#ready
– “Needs Review” → search: #needsreview
– “Ready” → search: #ready
The trick is using negative searches too. Like #idea -#draft shows only things still in the idea phase, excluding anything that’s progressed. I also play around with nested filters sometimes — searching within a tag AND a particular parent bullet — but that’s a rabbit hole for another day.
Workflowy lets you rename the sidebar entries so I give each saved search a friendly name. No hashtags visible in the sidebar. Honestly, it looks like a whole project tracker now.
Handling duplicates and conflicting tags
Mistagging is gonna happen. You’ll forget to remove #idea when you change it to #draft, and then both tags sit there. That actually broke one of my filtered views for a while — I had a view for #draft -#ready, expecting to only show in-progress posts. But some of those were still tagged #idea too, so they showed up in both searches. 🙃
Now I manually remove old tags when I update status, which sounds like a pain but takes a couple of seconds. Click, backspace, done. For recurring mistakes, I added a weekly cleanup task labeled “🚿 Clear old tags,” where I open my #draft view and scan for extras.
There’s no enforcement of tag exclusivity in Workflowy, but if I see something tagged #idea and #ready… I sort of know I messed up somewhere. That’s my cue to clean it up on the spot before I trust my own lists again.
Integrating tag changes with automations
Okay this part gets hacky. I wanted to trigger external workflows (like email drafts in Drafts or notion syncs) when something hit #ready. But Workflowy doesn’t have native integrations or webhooks — not yet. So I did what any Zapier nerd would do: used the Workflowy email export.
I have a recurring zap that emails a custom automation inbox with the contents of my #ready list. It runs every morning, pulls the list of ready posts via Workflowy’s saved search email export (yep, it’s clunky), then parses the email body and creates new Google Docs or Notion entries. Sometimes it fails when I have too many nested bullets but whatever, I just rerun it.
I’ve also experimented with using the copy link function for bullets (right-click any bullet > Copy internal link) and storing that in synced Notion rows. So even if the post lives in Workflowy, I have a clickable record externally.
And yes, once I ship something, I tag it #done and then collapse that section permanently. Clean inbox, fewer distractions 🙂
Color coding tags for visibility
Technically Workflowy doesn’t support tag colors… but if you use bullet color backgrounds via Pro account features, you can cheat a little. What I did for a few weeks (during a deadline sprint) was color the parent bullet that held the #ready posts. So visually, I’d scroll and instantly see if any finished content was waiting.
You can do this by right-clicking a bullet > Change background color. I picked different shades for each status section — light gray for #idea, soft yellow for #draft, bright green for #ready. But I eventually dropped this once I got used to reading tag names quickly. Worth trying if you’re more visual though.
Alternative method: prefix your tags. Like call them #status_ready or #s_draft to mentally group them in autocomplete. This helps when you’re adding tags quickly and don’t want to scroll through 20 similar ones with autocomplete failing halfway.
Pinning search tabs for fast switching
If you’re as disorganized as I am (and I’m currently writing this with 23 open tabs, 3 of which are drafts named “test”), pinned tabs in Workflowy help a ton. When I’m deep in writing mode, I pin my #draft and #ready views in separate browser tabs. That way I can cmd+tab between them without re-searching every time.
Pro tip: give your pinned tabs names like “write now” or “post queue” so you don’t accidentally close them or mix them up with Reddit. If you Cmd+D to bookmark the search views, reuse the saved links and just open them fresh when Workflowy freaks out and forgets your last state (which happens more often than it should 🙃).
Also, these pinned views stay real-time. So if you tag something #ready in tab A, it instantly appears in your #ready tab B. No reload needed. Workflowy’s live sync continues to be criminally underrated.
What broke when I reused a tag elsewhere
Fun little failure story. I once reused the tag #ready in a completely unrelated part of Workflowy to mark something like “Ready to buy.” Totally forgot about it. A week later I couldn’t figure out why my list of blog posts marked #ready now included a line that said “new mousepad #ready.” 😑
So yeah — tag scope is global. There’s no such thing as “just use this tag inside a certain project.” One workaround: add a second context tag, like #blog or #post. Then update your saved search to include both, e.g. #ready #blog.
That fixed it. I now tag my posts with both #draft and #blog so they don’t mix with personal to-dos or random grocery day ideas. I even created a saved search for #ready #blog today to avoid catching older entries from earlier months. Workflowy’s tag search syntax isn’t fancy, but combined in the right way, it works beautifully — until you forget and break it again 😛