Fixing Broken Automations Caused by Small Unseen Changes
1. When a renamed label breaks everything in multi-tool flows
This one wrecked my Monday: I renamed a label in Trello — that’s it — and suddenly the automation that was moving cards from one board to another via Zapier just stopped. There were no errors, no logs, no triggers fired. You’d think that changing a label name (not even the tag color) wouldn’t affect anything downstream, but apparently it does if you’re using the exact text string in a trigger filter.
If you’re using a filter like Label Name = Important
and you rename that to High Priority
, well… now the filter silently fails. No alert. Just a non-firing Zap. The cards sat there. I only noticed when someone Slacked asking why a client card hadn’t moved in three days.
Zapier treats label names as runtime text, not as IDs — and that’s a fundamental flaw. I confirmed this by switching the filter to JSON view. It looked like:
{
"label_names": ["Important"]
}
Once the label name changed, it no longer hit. The safer fix is using custom value paths or dynamic IDs where possible, though Trello’s API returns clunky nested arrays for labels, which makes this annoying. Worst part? No native fallback or missing match notification. Just silence.
2. Zapier filters often mask silent failures after app UI changes
Airtable silently changed some of my field names after a base duplicate. Not sure if it was a glitch or a naming conflict, but one field that used to be Campaign Summary became Campaign Summary 1 — which meant the Zap grabbing that field pulled in nulls, silently. No warning. The run history showed green checkmarks. It technically fired and ran… just with the wrong value.
This gets worse because Zapier doesn’t show incoming live data during runs unless you explicitly open Data In → Raw. Even then, the misnamed field doesn’t show an error — it just doesn’t exist in the payload. The automation copied blank data into Slack for two full days without anyone flagging it because everyone assumed automation was working.
If a field your automation expects isn’t present, Zapier doesn’t error — it shrugs. If you add the original field back, it doesn’t auto-remap. I had to delete and reselect each field manually. Couldn’t even relink the updated one. Dumb.
3. Unexpected webhook retries from Make caused duplicate entries
I hit this oddity last week while debugging a Make scenario tied to a Webflow form. The form submission was triggering a Make webhook, which created a row in Google Sheets and sent a confirmation email. Cool, until we ended up with duplicate rows and emails.
Make logged a single execution, but checking Webflow’s logs showed something else — Webflow was retrying the webhook for 504 errors. Make wasn’t throwing an error visibly, but apparently the webhook module was stalling long enough that Webflow retried it. Make logged only the last successful run, not each attempt.
The fix looked like this:
- Add a webhook secret and verify it in the route
- Append a
formId
and timestamp to each webhook - Use a Make filter to check for existing IDs before inserting
Something I learned: Make doesn’t buffer retries from the sender like Zapier does. If the incoming webhook fires twice, it treats each one as valid unless you manually dedupe. Could’ve saved six apology emails and a semi-panicked client check-in.
4. Gmail draft send actions misfire unless caching is bust manually
If you’ve got automations that touch Gmail drafts — say, building a draft in one Zap step, then sending it in the next — prepare for eventual weirdness. Drafts get cached per Google session view, and sometimes they don’t refresh correctly between step executions in Zapier. This means you end up sending an old draft. Or worse: an empty one that looks like a test email sent mid-pipeline.
This happened during a weekly bulk campaign run. It created 75 individualized Gmail drafts with custom merge fields populated from spreadsheet rows. Only 68 of them actually sent with content. The other 7? Empty signed emails with no body content. I checked the logs, and yep, all fields were fine during draft creation. But somehow, the send step just accessed an earlier cached draft version.
The hack that worked:
1. Delay 2 seconds between steps
2. Insert a dummy search step on the Gmail draft thread
3. Use Gmail API module in Make for more control
That second step — search through the draft thread to force sync — sounds dumb, but it tricks the Gmail module into refreshing state before sending. It’s brittle but works more reliably than Zapier’s native “Send Draft” module, which looks stable but clearly has cache-level issues.
5. Buttons in Notion don’t trigger properly if the page is filtered
Notion’s new buttons (especially the Database > Add or Update actions) are versatile, until you try clicking one inside a filtered view. Then suddenly, half the actions don’t fire — or fire conditionally, depending on how the button gets context.
We had a Notion database with status-filtered views for internal and external tasks. Each row had a “Mark Complete” button that updated properties and moved the page to another linked database. But in the filtered view, clicking the button sometimes did nothing. Move to unfiltered view, same row, same button — works fine. Nobody on the team could consistently reproduce it.
This was the best clue: certain button actions grab context based on the visible properties and filtered relations — meaning if the filter hides the relation or property it touches, the whole action fails silently. Notion doesn’t display errors in these cases. It just… no-ops.
Best workaround so far: move buttons to helper dashboards or use unfiltered views during admin work. But that’s clunky. Still waiting for Notion to add a proper automation log or debug console though. Right now it’s chaos with style.
6. Slack bots collapse if profile permissions are slightly wrong
This one came out of nowhere during a profile-specific onboarding flow triggered in Slack. We were using a Zap to post a welcome message from a bot user, tag the manager, then hand off to a Google Form. Most new hires got it fine. But two didn’t see the message.
Nothing showed for them. Logs said the Zap fired. Same channel, same steps. Turns out: Slack changed default message visibility for bot apps tied to Enterprise Grid workspaces. If the user hasn’t “interacted” with the bot before (clicked its button or reacted), messages sent in a private channel are hidden by GraphQL-level filtering. Not even visible in browser DevTools.
The flag was buried — per-user permission acceptance is needed even if the bot is approved workspace-wide. We switched the action to send the message via user alias (the manager’s name) instead of the bot. Worked instantly. Ugly hack, but visible messaging wins.
7. Google Sheets triggers stop if the sheet is renamed or moved
I’ve had two separate cases where a renamed tab (the internal sheet name, not the file) broke a Zap that depends on cell updates. Google Sheets assigns a sheet tab an internal ID like gid=612435
— but if the Zap is tied to a label instead of the ID, renaming it breaks the trigger silently.
In one older Zap, the trigger was set to “New or Updated Row in Sheet X.” The client renamed that tab to reorganize the workbook — and the Zap just started logging successful runs with zero data pulled. Took a full day before they realized their time-tracking data was going nowhere.
Even worse: moving the spreadsheet to another Shared Drive resets permissions, which can break connected modules in Make unless the account re-authenticates. Suddenly you get 403 errors in Make modules with no context or resolution hint.
Anytime you’re depending on external Sheets as your trigger source:
- Use unique IDs or hardcoded
gid
links where possible - Track sheet tab renames in a helper column
- If using Make, reauth after Shared Drive moves
I now keep a checkbox column named “Automation Trigger” in each active workbook. Yes, it’s dumb. But easier to control than letting Google decide when rows are “updated.”
8. Calendar invites auto-decline if attendees exceed internal limits
This wasn’t even caused by an automation, but it wrecked one. Google Calendar bounced several Calendly events for a team-wide scheduling flow. We had a Zap that added invitees to a central team calendar. Works great unless one calendar exceeds a rolling invite cap — which resets hourly, not daily. Apparently, after a dozen invites, new events started arriving as “declined.”
Google’s calendar spam detection limits unverified tools that invite too many users at once. They silently bounce by marking the event declined for the intended recipient. Unless that person checks their email spam (or you download full invites with ICS inspection), you’ll never know.
This dominoed into horrible event workflows: Zaps scheduled follow-ups based on accepted status, but the person was never actually invited. So the automation sent them prep docs for a meeting they didn’t know existed.
We’re shifting to Outlook for external invites and switching Zaps to poll the “Guests” field instead of reacting to status changes.