The Fewest Links Philosophy: How to Build Automations That Don’t Break
There’s a children’s game in Philly / eastern PA that’s called “Whisper Down the Lane.” Pretty much the rest of the USA calls it “Telephone.” If you’re unfamiliar with the game, a bunch of kids sit in a line, and the first person whispers something to the second. Then each kid subsequently whispers what they hear to the next person. The last person in the line then says what they hear out loud.
The entertaining part is seeing how much the message changes from the first to the last person. Maybe “The New York Knicks won in five” turns into “In New York: kick, run, drive.” The more people, the less likely the original message stays intact. The more complicated the message, the less likely it stays intact.
Or maybe you just have a chaos agent who changes it completely.
I was thinking about this game while thinking through a core philosophy I’ve mentioned a few times but have never fully explained: my Fewest Links philosophy.
It states that when it comes to automation, the fewer links in the chain, the better. And while Telephone1 is fun when the message changes, with business automations it could lead to big problems.
An Automation That Was Too Clever by Half
Here’s one time an automation really bit me, and cost me possibly dozens of email subscribers.
When I first started using Kit.com (formerly ConvertKit), I didn’t like the way the forms looked…so I decided to make my own using WordPress, then set up a Zapier automation to send the info from the form to ConvertKit. This is despite ConvertKit having embeddable forms, and paid solutions like Gravity Forms having ConvertKit integration.
I failed to do two things. The first was to save the data in WordPress, so even if the zap failed, I’d have a backup. But hey, I tested the zap and it worked…so we’re good, right?
Right?
About a month later, I noticed that literally no one had signed up for my mailing list. I thought that was weird because sure, November is maybe slow; people are unsubscribing more than joining. But I’m usually good for a handful per week. So I decided to investigate.
That’s when I noticed the second failure: I forgot to turn the zap on. So people were filling out a form that didn’t save the info, nor did that info get sent to ConvertKit. I could have just used an embeddable ConvertKit form — one link in the chain — but instead I decided:
Custom form -> Zapier -> ConvertKit, and the Zapier link was broken. And it cost me mailing list subscribers, and my mailing list is the main way I sell my products and services.
Of course, the “fewest links” path was super clear here, and I decided to ignore it. What about in other instances, where it may not be as clear?
How to Figure Out the Fewest Links
Remember that the goal is always the fewest possible links — the shortest path. That doesn’t always mean a short path. Here’s an example:

This is my call router for Cal.com. Depending on the type of call, I want to take different actions. So this looks complicated, but the alternative would be 4 discrete zaps that all do the same exact check. This is actually the fewest links, because it prevents errors, and it prevents zaps from “colliding” and multiple outcomes from happening.
If, instead of Booking Created, Cal.com had a trigger called Booking Created From Specific Event, it might be simpler to have 3 zaps and then exclude the Fallback.
So how do you figure out the shortest path? There are a few ways when you’re starting out.
Look for Built-In Automations
The first is definitely the simplest; some apps will offer built-in ways to do intra-app automations. Notion, Airtable, and ClickUp, for example, all give you ways to automate inside the app. When I click a button in Notion, add a row to a different database. When I update a status in Airtable, send an email. When a new task gets added in ClickUp, automatically assign it.
These are definitely the fewest links. It’s 2 links within the same app, and while nothing is unbreakable, these have the least likelihood of breaking. And if they do, the onus is very clearly on one company to fix them2.
Look for Direct Integrations
If you need to get two apps working together, look for direct integrations before going to something like Zapier. A direct integration is more reliable because it doesn’t need an intermediary connector.
For example, Notion has direct integration with Google Workspace and Slack. So I don’t need a Zap to send a message to my contractors when a row is updated in Notion. I can have Notion do that automatically.
Todoist has direct integrations for Gmail and Spark, making it easy to move tasks out of email and into Todoist. Obsidian has a browser-based web clipper, so I don’t need Zapier or some other third-party “highlights” app to send interesting quotes and articles to Obsidian.
The combination of built-in automation and direct integrations can also be very powerful. Again, everything is happening inside of the primary app. But what about when there aren’t direct integrations?
That’s when we look at automation tools like Zapier, Make, or even an LLM. But we want to take a simpler approach first.
When Using Automation Tools, Look for the Most Specific Triggers and Actions
In my Cal.com example, I talked about why that complicated, multi-branch automation is actually the simplest version: because there’s not a more specific trigger I can use.
For example, with Google Drive, there are triggers for “New File” and “New File in Folder.” The latter allows me to have a simpler automation because now I won’t need to filter, search, or take some other action that could lead to a false positive or complete failure.
When using triggers (the things that kick off automations) and actions (the things that happen after an automation gets kicked off), you want the most specific versions possible to remove ambiguity and prevent having to add extra steps for filters.
It’s only when there’s not a more specific trigger or action that you move to a more generic version…which will likely increase the number of links in the chain.
Now, if you do start to get super complicated with a tool like Zapier, there may actually be a simpler method…though it won’t seem like it at first.
Look at First Party APIs
I really thought about putting this at number 3 instead of last, but the truth is, this could be the most complicated…or at least it used to be.
Recently I was wondering if I’d be able to create a Claude Skill that would check a Notion table for any podcast episodes ready to be published, then send everything over to my host for that show, RSS.com, and schedule them. RSS.com has a pretty great API, so I decided to give it a shot.
And you know what? It worked. Like gangbusters. Claude referenced the API documentation, then built a skill to work with it. The chain goes:
Claude -> Notion -> RSS.com.
Doing this with Zapier, it would have taken many steps, even more tests, and a hope that my rubber bands and toothpicks hold up. OH, and I’d rely on a lot more services: Notion, Google Drive, some other AI feature, and multiple webhook calls.
With the app that Claude made, it runs automatically, pulls everything from one source (locally on my computer), and if it breaks, it can diagnose and fix the error.
Stop Playing Telephone With Important Workflows
No matter what you’re building, the best way to make sure you have the fewest links in the chain is to start simple. Try automating one part of a workflow first, then seeing how it goes before adding onto the automation, or adding a new automation.
The alternative is to create a long chain of complicated actions that will result in the wrong outcome, or even worse, no outcome at all.
