Category: Productivity

  • Zapier’s multi-step Zap delay and why your automations break

    Zapier’s multi-step Zap delay and why your automations break

    Zapier’s delay step looks simple: pause a workflow for X minutes, then continue. But when you chain delays with webhooks, conditional paths, or APIs that expect near-instant responses, you introduce failure points that don’t show up in test runs.

    Most operators add delays to throttle API calls, spread out emails, or wait for external services to process data. The problem is that Zapier’s delay doesn’t pause the entire workflow—it queues the remaining steps and hands control back to Zapier’s scheduler. If your upstream service times out, if your conditional logic depends on fresh data, or if a webhook expects a synchronous reply, your Zap fails silently or produces stale results.

    How Zapier’s delay step actually works

    When you insert a delay, Zapier splits your workflow into two parts: everything before the delay runs immediately, and everything after gets added to a queue with a timestamp. Zapier’s scheduler picks it up when the delay expires.

    This design works fine for simple workflows—trigger on new row, wait 10 minutes, send email. But it breaks when:

    • Webhooks expect a synchronous response. If your trigger is a webhook and your sending service times out before the delay expires, the upstream app logs a failure even though your Zap eventually runs.
    • Conditional logic depends on real-time data. If you delay after a trigger, then check a condition based on a field that might change (order status, inventory count, user role), the data Zapier queried at trigger time may be stale by the time the delayed steps run.
    • Third-party APIs rate-limit by time window, not by call count. Adding a 5-minute delay between steps doesn’t help if the API measures rate limits in rolling 60-second windows. You’ll still hit the limit if multiple Zaps fire in the same minute.

    When delays cause silent failures

    Zapier’s task history shows a delay step as successful if it queues correctly. The failure happens downstream, often in a later step that depends on timing or fresh data.

    Example: You trigger a Zap when a Stripe payment succeeds, delay 15 minutes, then check if the customer completed onboarding in your app. If the customer completes onboarding in minute 10, your conditional check at minute 15 sees the updated status and proceeds. But if they complete it in minute 2, your check still waits until minute 15—and if your onboarding flow sent them a conflicting email in the meantime, they get duplicate or contradictory messages.

    Another common break: delaying before a lookup step. If you trigger on a new CRM contact, delay 30 minutes, then look up their company in another system, the lookup uses the contact ID from the original trigger. If that contact was merged or deleted in the CRM during the delay, the lookup fails or returns null.

    Alternatives that don’t break timing-dependent workflows

    If you need to throttle API calls, use Zapier’s built-in rate limiting in your action step settings instead of a delay. This queues tasks at the action level without splitting the workflow.

    If you need to wait for external state to change, replace the delay with a polling trigger or a webhook callback. For example, instead of delaying 10 minutes then checking order status, set up a separate Zap triggered by an order status change event.

    If you need to spread out emails to avoid looking spammy, move the delay logic into your email tool. Most ESPs let you schedule sends or add random delays per recipient—Postmark and Brevo both support this natively for transactional campaigns.

    If you’re delaying to give a human time to review something, use a dedicated approval tool like Slack’s workflow builder or a form submission as the next trigger, rather than a blind time delay.

    When delays actually work

    Delays are safe when:

    • The trigger is asynchronous (new row in a spreadsheet, new file in Dropbox) and doesn’t expect a response.
    • No downstream step depends on real-time data or external state that might change.
    • You’re delaying to satisfy a minimum wait time (e.g., wait 5 minutes before sending a follow-up), not to synchronise with another process.

    If your workflow fits those criteria, delays work fine. If you’re using delays to work around rate limits, timing dependencies, or state synchronisation, you’re patching over a design problem.

    Before you add a delay step, ask: what am I actually waiting for? If the answer is “for something to happen,” use an event trigger. If it’s “to avoid hitting a rate limit,” configure rate limiting at the action level. If it’s “to make the timing feel human,” move the delay into the tool that sends the output.

    Got a Zapier workflow that breaks intermittently? Reply with the failure pattern—I’ll cover debugging strategies in a future issue.

    Heads up — some links in this article are affiliate links. If you sign up through them, we may earn a small commission at no extra cost to you. We only recommend tools we use ourselves.

  • Workflow automation breaks when you automate the wrong tasks

    Workflow automation breaks when you automate the wrong tasks

    Automation promises leverage: build once, run forever. But most operators automate the wrong parts of their workflow and end up maintaining complex systems that create more work than they save.

    The pattern shows up everywhere. You build a Zapier chain to auto-tag newsletter subscribers based on link clicks, but the logic requires weekly updates as your content strategy shifts. You set up auto-posting for social media, but you spend thirty minutes each morning reviewing the queue to make sure nothing looks tone-deaf. You create templated email responses, but every message still needs five minutes of customization.

    You’ve automated tasks that require judgment, and now you’re babysitting robots.

    Repetition vs. decision-making

    The clearest line in workflow automation separates repetitive execution from decision-making. Repetitive tasks have fixed inputs and predictable outputs. Decision-making tasks require context, comparison, or subjective evaluation.

    Good automation candidates: sending a welcome email when someone subscribes, posting a blog link to Twitter fifteen minutes after publish, copying form submissions into a spreadsheet, generating weekly traffic reports, resizing images to specific dimensions.

    Bad automation candidates: deciding which blog post to write next, choosing whether a subscriber should receive the advanced or beginner nurture sequence, determining if a social post needs a content warning, writing personalized outreach emails, selecting which analytics metrics matter this month.

    The bad candidates aren’t impossible to automate—tools exist for all of them—but the automation requires constant tuning. You end up spending more time adjusting the system than you would just doing the task manually.

    Volume thresholds matter

    A task doesn’t need automation just because it’s repetitive. It needs automation when the repetition happens frequently enough that manual execution creates meaningful friction.

    Posting your newsletter link to three social channels once a week takes ninety seconds. Building and maintaining a Zapier workflow to do it automatically saves you six minutes per month and costs $20 on the starter plan if you’re already at your task limit. The math doesn’t work unless you’re publishing daily or managing multiple publications.

    Real automation wins happen at volume. If you’re processing fifty Typeform submissions per week, auto-copying them to Airtable makes sense. If you’re getting five, open the form and copy-paste. If you’re sending three sponsor invoices per month, write them manually. If you’re sending thirty, template the hell out of them and connect Stripe to your CRM.

    The break-even point sits somewhere between five and twenty repetitions per week, depending on task complexity and your comfort with automation tools. Below that threshold, you’re optimizing for elegance, not efficiency.

    Maintenance cost is invisible until it isn’t

    Every automation you build accumulates technical debt. APIs change. Platforms deprecate endpoints. Your own business model shifts and the workflow that made sense six months ago now routes leads to a landing page you deleted.

    I’ve seen operators running Zapier accounts with forty active Zaps, half of which haven’t triggered in sixty days. They’re paying for automation insurance—workflows built for edge cases that never scaled—but they can’t delete them because they’re not sure what will break.

    The maintenance cost shows up in three places: debugging time when something stops working, cognitive overhead remembering what each workflow does, and opportunity cost from paths you didn’t explore because the current system was “good enough.”

    A working rule: if you haven’t touched an automation in ninety days and it’s not mission-critical (welcome emails, payment receipts, backup jobs), delete it. You’ll rebuild it faster than you think if you actually need it again, and you’ll rebuild it better because you’ll know more about what you actually need.

    What to automate right now

    Start with pure data movement: form to spreadsheet, spreadsheet to email, email to task manager, new post to social channel. These workflows have no decision layer. They take structured input and copy it somewhere else without transformation.

    Then move to scheduled reporting: weekly traffic summaries, monthly revenue roll-ups, daily backup confirmations. Anything that pulls existing data into a readable format on a fixed calendar.

    Stop before you automate anything that requires you to review output before it goes live. The review step is the real task. The automation is just a draft generator, and draft generators are only valuable if they’re faster than doing it yourself.

    If you’re spending more than ten minutes per week adjusting an automation, you’ve automated a decision, not a task. Turn it off and do the work manually until the decision becomes repetitive enough to codify.

    One Two Three Send runs on a mix of automatic and manual workflows. Some things—like this newsletter hitting your inbox—are fully automated. Others, like choosing what to write about, will never be. If you want more breakdowns of what works and what doesn’t in small-scale online operations, subscribe here.

  • Zapier’s task history cap and what it costs you in debugging time

    Zapier’s task history cap and what it costs you in debugging time

    Zapier stores a rolling window of task history—the step-by-step logs that show what fired, what data passed through, and where things broke. On the free tier, you get seven days. Starter and Professional plans bump that to 14 and 30 days, respectively. After that, the logs vanish.

    This sounds like a reasonable retention policy until you need to debug an automation that ran three weeks ago, or trace why a subscriber didn’t get tagged in your CRM after a payment event last month. The data exists in your destination app, but the execution trail—the one thing that tells you why it happened or didn’t—is gone.

    When short retention windows hurt

    Most operators don’t notice the cap until they hit one of three scenarios:

    Delayed failure discovery. A Zap processes thousands of tasks a month. One edge case—maybe a malformed webhook payload or a missing custom field—fails silently. You don’t catch it for three weeks because the destination app doesn’t surface the gap. By the time you notice, Zapier’s purged the task log. You know something broke, but you can’t see the payload or error message.

    Auditing compliance or billing. If you bill clients based on automated actions—email sends, form submissions routed to a CRM, course enrollments triggered by payment—you need a paper trail. Zapier’s task history works as a lightweight audit log, but only if the window covers your billing cycle. A 14-day retention window doesn’t span a monthly invoice period.

    Intermittent bugs that surface late. A Zap runs fine for weeks, then fails once because a third-party API changed a field name or returned an unexpected null value. The single failure happens on day 12. You don’t investigate until day 20. The log is gone, and you’re left guessing whether the bug still exists or resolved itself.

    What the cap costs you in operator time

    Without task history, you rebuild context from scratch. That means:

    • Manually triggering test runs to reproduce the original conditions, which often don’t match production data
    • Cross-referencing timestamps across multiple apps to infer what Zapier did or didn’t send
    • Requesting webhook logs from upstream services if they even retain them
    • Guessing at payload structure instead of copying it directly from the task detail screen

    A task log that takes 90 seconds to scan turns into a 20-minute archaeology project. Multiply that across every automation you run, and the retention cap becomes a recurring tax on your debugging time.

    How to work around the purge

    Log critical task data externally. Add a final step to high-value Zaps that writes key fields—timestamp, record ID, status—to a Google Sheet or Airtable base. You control the retention window, and you can filter or search logs without Zapier’s UI. This adds one task per run, so factor that into your monthly task quota.

    Upgrade selectively. If most of your Zaps are low-risk but a few handle payments or CRM updates, consider splitting them across workspaces. Keep mission-critical automations on a Professional plan (30-day history, $70/month for 2,000 tasks) and routine workflows on Starter ($20/month, 14 days). Zapier bills per workspace, so this only works if task volume justifies separate plans.

    Screenshot or export on failure. Zapier emails you when a Zap errors. The email includes a link to the task detail page, but that link expires when the task purges. If the error looks non-trivial, open the task immediately and screenshot the payload and error message. Low-tech, but it survives the retention window.

    Use webhook catch-all endpoints sparingly. Some operators route all inbound webhooks through a single Zapier catch hook, then branch with filters. This centralizes task history in one Zap, but it also means a single retention window governs every webhook you process. If you need longer retention for specific event types—like payments—give them their own Zap so you can log or upgrade them independently.

    When the cap doesn’t matter

    If your Zaps are stateless—posting to social media, reformatting RSS feeds, sending Slack notifications—you rarely need historical logs. The output is fire-and-forget. A missing task from two weeks ago doesn’t cascade into data integrity problems.

    But if your automations write to a system of record—your CRM, your course platform, your subscriber database—you’re betting that nothing will ever need forensic review outside the retention window. That’s a bet that costs you time the moment it loses.

    Want more automation deep-dives like this? Subscribe to One Two Three Send for tool breakdowns, pricing traps, and workflow fixes for solo operators.

  • Content calendars break when you plan more than two weeks out

    Content calendars break when you plan more than two weeks out

    Most productivity advice tells you to plan your content calendar weeks or months in advance. Map out topics, assign publish dates, block time for research and writing. The promise: less scrambling, more consistency, better results.

    The reality: those carefully planned calendars fall apart within days. A news cycle shifts. A tool launches. A reader question surfaces a better angle. Suddenly your polished four-week roadmap is obsolete, and you’re either publishing stale content or abandoning the plan entirely.

    Content calendars aren’t the problem. Over-planning is.

    Why long-range content planning fails solo operators

    When you’re running an online business alone or with a small team, you don’t have the luxury of a newsroom’s division of labor. You’re the reporter, editor, and publisher. That means your content strategy needs to respond to what you’re learning in real time—from analytics, reader replies, product feedback, and the tools you’re actually using day-to-day.

    A quarterly content calendar assumes your priorities won’t change. But if you’re iterating on a product, testing traffic channels, or adjusting your monetization model, your editorial focus should shift. Locking topics into a grid three months out creates artificial commitment to ideas that may no longer serve your business.

    There’s also the sunk-cost problem. Once you’ve invested an hour sketching out twelve topic ideas and slotting them into a spreadsheet, you feel obligated to execute them—even when a better, more timely topic emerges. The calendar becomes a constraint instead of a tool.

    The two-week threshold

    Two weeks is roughly the outer limit where topic planning still holds value without becoming a liability. You can reasonably predict:

    • Which tools you’ll be using or testing
    • What questions your audience is asking right now
    • What seasonal or industry events are genuinely imminent
    • Your own availability and energy levels

    Beyond that window, you’re guessing. And guesses dressed up as a content calendar waste time twice: once when you plan them, again when you revise or scrap them.

    For operators publishing multiple times per week, two weeks gives you four to eight slots. That’s enough runway to write ahead when inspiration strikes, but not so much that you’re locked into topics that go stale.

    What to plan instead of topics

    If you’re not filling a calendar grid with headline ideas, what do you schedule?

    Themes and beats, not individual pieces. Decide that this month you’ll rotate between three beats—say, email tools, AI workflows, and monetization tactics—without assigning specific angles. When it’s time to write, you pick the freshest idea within that beat.

    Formats and content shapes. Monday is a tutorial. Wednesday is a tool comparison. Friday is a case study with real numbers. The format is fixed; the topic flexes based on what’s relevant that week. This is how One Two Three Send operates, and it prevents both topic fatigue and the scramble for structure.

    Production blocks, not publish dates. Instead of “publish SEO guide on June 12,” schedule “research and draft one traffic piece between June 10–14.” You’re committing to the work, not the output. If a better angle surfaces mid-week, you can pivot without guilt.

    Evergreen buckets. Keep a running list of topics that aren’t time-sensitive. When you have energy but no urgent idea, pull from the bucket. These aren’t scheduled—they’re available.

    The calendar you actually need

    Your content calendar should answer one question: What’s the next thing I need to write, and when do I need to write it?

    For most solo operators, that’s a two-column tracker: publish date and content type. Fill the next two weeks. Leave everything else in a backlog, unsorted and unscheduled. Review the backlog weekly, pull in what’s relevant, let the rest age out.

    Tools don’t matter much here. A Notion database works. So does a Google Sheet, Trello board, or a text file. The system isn’t the point—the short planning horizon is.

    If you’re currently staring at a color-coded content calendar that runs through September, try this: archive everything more than two weeks out. For the next month, plan only the immediate next batch. Track whether you feel more scrambled or more responsive.

    Odds are, you’ll publish more relevant content with less planning overhead. And you’ll stop feeling guilty about ignoring a roadmap that was never going to survive contact with your actual business.

    What’s your content planning window right now—and is it working? Hit reply and let me know. I read every response, and reader questions often shape what we cover next.

  • Notion databases: when to relate tables and when to duplicate

    Notion databases: when to relate tables and when to duplicate

    Notion sells itself on the promise of connected databases—one source of truth, relational properties, rollups that calculate automatically. It’s a compelling pitch, especially if you’re managing clients, projects, content calendars, and invoices in the same workspace.

    But relational databases in Notion come with friction most solo operators don’t anticipate until they’re neck-deep in broken views and slow-loading pages. Sometimes the smarter move is to duplicate your data instead of relating it.

    When relations make sense

    Relational properties work well when you need live, two-way sync between databases. A classic example: a Projects database linked to a Clients database. You relate each project to a client, and Notion automatically shows all projects under that client’s page. Add a rollup, and you can calculate total hours billed or outstanding invoices without touching a spreadsheet.

    This setup shines when:

    • You frequently filter or group by the related property (e.g., “show me all active projects for Client X”).
    • The related database is relatively small—under 500 rows.
    • You need rollups or formulas that pull data from the related table.

    But the moment your related database grows past a few hundred entries, or you start chaining relations (Projects → Clients → Invoices → Line Items), Notion’s performance starts to sag. Pages take three to five seconds to load. Inline databases stutter when you apply filters. Mobile becomes nearly unusable.

    When duplication beats relation

    Duplication means copying static data—like a client name or project status—directly into the database where you need it, rather than linking to another table. You lose the automatic sync, but you gain speed and simplicity.

    Here’s when to duplicate:

    • High-volume databases. If your content calendar has 1,000+ rows and you’re relating each post to an author database, every view recalculates those links. Duplicating the author name as plain text makes filters instant.
    • Archival data. If you’re logging completed projects or past invoices, the data rarely changes. A relation adds complexity with no upside—just copy the client name and close the loop.
    • Cross-workspace collaboration. Notion’s database relations don’t work across workspaces. If you’re sharing a content calendar with a client but keeping your internal project tracker private, duplication is your only option.

    Yes, you lose the ability to update a client’s name in one place and see it cascade everywhere. But for most solo operators, that’s a theoretical problem. You’re not renaming clients every week. The performance gain is real; the sync risk is hypothetical.

    The hybrid approach

    You don’t have to choose one strategy for your entire workspace. I run a Content database with 800+ posts. Each post has a Topic property—but instead of relating to a separate Topics database, I use a multi-select dropdown. It’s technically duplication (the topic name lives in the Content database), but I can still filter, group, and count posts by topic without the relational overhead.

    For high-touch workflows—like tracking sponsorship deals where I need live rollups of total contract value—I keep the relation. For everything else, I flatten the data.

    Notion’s automation and API integrations (via Zapier or Make) can help maintain duplicated data if you do need occasional syncing. A zap can copy a client’s updated name into your archive database once a month, for example, without forcing every page load to recalculate a relation on the fly.

    What this means for your workspace

    If your Notion workspace feels sluggish, audit your relational properties first. Open your largest database, check the relations panel, and ask: Do I actually use this link, or am I just maintaining it because it feels like best practice?

    Relations are a feature, not a requirement. Treat them like indexes in a SQL database—powerful when you need them, expensive when you don’t.

    Using Notion to run your business? Reply with your biggest database headache—I’ll feature reader solutions in a future issue.

  • Social proof widgets slow your site more than they boost conversions

    Social proof widgets slow your site more than they boost conversions

    Social proof widgets—those little popup notifications that tell you “Mike from Austin just signed up” or “127 people are viewing this page”—promise to increase conversions by showing real-time activity. Most operators install them hoping for a 5–10% lift in signups or sales.

    The math rarely works out. These widgets typically add 300–800ms to your page load time, and Google’s Core Web Vitals penalize anything that shifts layout or delays interactivity. For content-driven businesses where most revenue comes from return visits and organic search, that performance cost outweighs the marginal conversion bump.

    What these widgets actually cost

    A typical social proof script—Proof, Fomo, UseProof, or TrustPulse—loads between 45KB and 120KB of JavaScript. That’s on top of your analytics, email capture forms, and content delivery.

    On a midrange mobile connection (4G, not 5G), that adds roughly 400ms to your First Contentful Paint and another 200–400ms to Time to Interactive. If you’re running WordPress on shared hosting without a CDN, it’s worse: 600–1,000ms is common.

    Google’s algorithm treats anything above 2.5 seconds for Largest Contentful Paint as “poor.” If your page was already sitting at 2.1 seconds, a social proof widget pushes you into the penalty zone. The organic traffic loss from a rankings drop often exceeds any conversion lift the widget provided.

    The conversion lift is smaller than advertised

    Vendor case studies claim 10–15% conversion increases. Independent A/B tests from operators I’ve spoken with show 2–4% lifts—and only on cold traffic landing pages, not on content pages or repeat-visitor flows.

    If you’re running a newsletter signup page that converts at 8%, a 3% relative lift gets you to 8.24%. That’s 2.4 extra signups per 1,000 visitors. Useful, but not transformative—and only if the widget doesn’t tank your traffic by hurting SEO.

    For operators whose revenue comes primarily from content SEO and repeat readers (newsletters, affiliate blogs, course creators with organic funnels), protecting page speed and search rankings matters more than squeezing another percentage point from cold landing-page visitors.

    When social proof actually works

    Social proof widgets make sense in three scenarios:

    • Paid-traffic landing pages where you control the source and every visitor is cold. You’re not relying on SEO, so the performance hit doesn’t cost you rankings.
    • High-ticket product pages where the conversion value justifies the engineering cost. If one extra sale per week is worth $500+, the trade-off pencils out.
    • Launch campaigns with short, time-bound traffic spikes. Install the widget for two weeks, capture the momentum signal, then remove it.

    If you’re running a content site where 60%+ of traffic is organic and repeat, static testimonials and subscriber counts perform nearly as well without the JavaScript overhead.

    Better alternatives that don’t slow you down

    Instead of a live widget, try:

    • Static testimonial blocks in your sidebar or above the fold. One sentence, a name, and a photo. No external script required.
    • Subscriber count in your header or opt-in copy. “Join 12,000 operators” works as social proof and costs zero milliseconds.
    • Occasional email broadcasts highlighting recent wins or community size. You control the message and don’t sacrifice site performance.

    If you’re committed to live notifications, lazy-load the script so it only fires after the primary content renders. Most platforms don’t offer this out of the box—you’ll need a developer or a plugin like WP Rocket’s delay-JavaScript feature.

    For most solo operators and small teams, the simplest move is to skip the widget entirely. Your site will load faster, your SEO won’t take a hit, and your conversion rate will stay within a percentage point of what the widget promised.

    If this helped: reply and tell me which performance tool you’re using to audit your site. I’m tracking what operators actually rely on versus what gets recommended in generic listicles.

  • Zapier’s Digest feature: batch updates without spamming your inbox

    Zapier’s Digest feature: batch updates without spamming your inbox

    Most automation workflows fire once per trigger. Someone fills out a form, Zapier fires. A new row hits your sheet, Zapier fires again. That’s fine when you get three events a day. It’s a disaster when you get thirty.

    Zapier’s Digest step exists to solve that problem. Instead of sending you a Slack notification for every new subscriber or a separate email for every form submission, Digest collects those events over a set time window—hourly, daily, or weekly—and bundles them into a single payload.

    It’s one of Zapier’s least-documented features, and most operators don’t know when to use it or how to configure it properly. Here’s what it does, when it works, and one setup mistake that breaks the entire workflow.

    How Digest actually works

    Digest sits between your trigger and your action. Every time the trigger fires, Zapier adds that event to a temporary storage queue instead of immediately passing it downstream. When your chosen time window closes—say, every day at 9 a.m.—Zapier releases the entire batch as a single step output.

    You configure three things: the digest key, the time interval, and the data format. The digest key groups events together; if you’re batching form submissions by type, you’d use a key like form_name. The time interval sets when the batch releases: every hour, every day at a specific time, or every week on a chosen day. The data format determines whether Zapier sends a line-item list or a concatenated text block.

    Common use cases: daily summary emails of new subscribers, weekly Slack digests of GitHub issues, hourly rollups of customer support tickets. Anywhere you’d rather see ten items at once than ten separate notifications.

    When batching saves time, and when it hides problems

    Digest works best when the underlying event is informational rather than urgent. If you’re tracking new blog comments or monitoring social mentions, a daily rollup keeps your inbox clean without missing anything critical.

    It breaks down when the event requires immediate action. If you’re using Digest to batch payment failures or security alerts, you’ve just introduced a delay that could cost you money or trust. A payment fails at 10 a.m., but you don’t see it until the 5 p.m. digest fires—by then, the customer has already churned or disputed the charge.

    The other failure mode: data overload. If your digest regularly contains 50+ items, you’re not reading it—you’re archiving it. At that point, Digest isn’t solving a notification problem; it’s hiding a workflow problem. You probably need filtering, segmentation, or a different tool altogether.

    The setup mistake that silently breaks Digest

    Here’s the trap: Digest only works if your Zap actually runs during the release window. If your trigger hasn’t fired in the past 24 hours and you’ve set a daily digest, Zapier won’t release the batch—it needs at least one new event to trip the release logic.

    That means if you’re batching low-frequency events—say, a weekly digest of new affiliate signups—you could end up with no output at all if no one signed up that week. Zapier won’t send an empty digest; it just skips the release entirely.

    The workaround: pair Digest with Zapier’s Schedule trigger instead of relying on the original event trigger. Set a daily or weekly schedule, then pull the digest data manually via a Formatter step or a webhook. This guarantees the release window fires even when the source data is quiet.

    One non-obvious configuration tip

    Most operators set their digest interval to align with their own schedule—daily at 9 a.m., for example. That’s fine for personal workflows, but if you’re sending digests to a team or a client, you want the release time to match their context, not yours.

    If you’re summarising support tickets for a remote team across three time zones, a single 9 a.m. UTC digest lands at 4 a.m. for some people and lunchtime for others. Instead, duplicate the Zap and configure separate digests for each region, or use Zapier’s Paths feature to route events into time-zone-specific buckets before they hit Digest.

    And if you’re batching user-facing data—like a weekly email summarising content performance for your readers—test the digest output format carefully. Zapier’s default line-item formatting often includes raw field names and extra punctuation that looks fine in Slack but breaks in an HTML email template. You’ll need a Formatter step after Digest to clean it up.

    When to skip Digest entirely

    Two situations where Digest isn’t the right tool: when you need conditional logic per event, and when your downstream action can already handle bulk data.

    If you’re filtering events based on custom field values—say, only sending a notification when a form submission includes a specific keyword—you need to apply that filter before Digest, not after. Otherwise, you’re batching everything and then discarding most of it, which wastes task usage and complicates your Zap history.

    And if your action step already supports bulk operations—like updating multiple rows in a Google Sheet or sending a batch email via an API—you don’t need Digest at all. Use Zapier’s native Looping or Line Item handling instead, which gives you more control over error handling and retry logic.

    Digest is useful, but it’s not universal. The best automation workflows batch strategically, not reflexively.

    Want more breakdowns like this? Reply and tell me which Zapier step or automation pattern you want explained next—I’ll cover it in a future issue.

  • Stop paying for recurring subscriptions you forgot about

    Stop paying for recurring subscriptions you forgot about

    Most solo operators running online businesses are paying for between three and seven software subscriptions they either forgot about or no longer need. The average waste sits between $80 and $200 per month — enough to cover a year of decent hosting or a professional email service.

    This isn’t about extreme frugality. It’s about operational hygiene. Every unused subscription is a small leak in your business, and those leaks compound over time. Here’s how to audit your stack, cut the bloat, and build a system that prevents it from creeping back.

    Pull your transaction history from every payment method

    Start with your credit cards, PayPal, and any business accounts you use for software purchases. Download the last six months of transactions and filter for anything that repeats monthly or annually.

    Look for:

    • Charges under $20 — these are easy to miss and often auto-renew without warning.
    • Annual renewals you forgot about. A $200 charge in May for a tool you stopped using in February hurts twice.
    • Services billed through aggregators like Paddle or FastSpring, which obscure the vendor name on your statement.

    If you use a tool like Stripe for your own revenue, check your outgoing subscriptions too. Some operators set up recurring payments for white-label services or API access and forget they’re still active.

    Match every charge to a current use case

    Open a spreadsheet. List every recurring charge, the amount, the billing cycle, and — most importantly — the last time you actually used it.

    For each subscription, ask:

    • Have I logged in during the past 30 days?
    • Does this tool solve a problem I still have?
    • Could I replace this with a free alternative or a tool I’m already paying for?

    Common offenders include:

    • Design tools you used once for a logo refresh (Canva Pro, Adobe Creative Cloud).
    • SEO or analytics platforms you check twice a year (Ahrefs, Semrush).
    • Social media schedulers for platforms you stopped posting to (Buffer, Publer).
    • AI assistants you signed up for during a launch, then replaced with something else.

    If you haven’t touched it in 60 days and can’t articulate a specific upcoming use case, kill it.

    Downgrade before you cancel

    Some tools offer free tiers that cover 80% of what you need. Before you cancel outright, check if a downgrade makes sense.

    Examples:

    • Most email platforms (MailerLite, Brevo, Beehiiv) have generous free plans for lists under 1,000 subscribers.
    • Analytics tools like Plausible and Fathom offer lower-tier plans if you’re tracking fewer than 10,000 monthly pageviews.
    • Hosting providers often let you move to a cheaper plan if your traffic dropped or you consolidated sites.

    Downgrading keeps your account active, preserves your data, and gives you a fallback if you need to scale back up. Canceling outright sometimes means losing historical data or having to re-integrate from scratch later.

    Set a calendar reminder to repeat this every quarter

    Subscription bloat isn’t a one-time problem. New tools creep in during launches, experiments, or when you’re troubleshooting something urgent. Three months later, you’ve forgotten why you signed up.

    Block 30 minutes every quarter to repeat this audit. Use the same spreadsheet. Update your current charges, check usage, and cut anything that’s drifted out of your workflow.

    If you’re using a tool like Notion or Airtable to manage your business operations, add a “Software Stack” table with columns for cost, renewal date, and last-used date. Set up an automation (via Zapier or Make) to flag anything that hasn’t been marked “used” in 45 days.

    One rule to prevent future bloat

    Before you sign up for any new paid tool, add a note in your calendar for 60 days out: “Still using [Tool Name]?”

    If the answer is no, cancel before the second billing cycle hits. Most SaaS tools hook you with a generous trial or a strong first-month use case, then fade into the background as your workflow shifts. The 60-day check catches that drift before it costs you six months of fees.

    Running lean doesn’t mean running cheap. It means every dollar you spend has a job. If a tool isn’t doing that job, cut it and redirect the budget to something that moves your business forward.

    Want more operator-focused breakdowns like this? Subscribe to One Two Three Send and get one article like this in your inbox every week — no fluff, no filler, just the tools and tactics that matter for solo operators running content businesses.

    Heads up — some links in this article are affiliate links. If you sign up through them, we may earn a small commission at no extra cost to you. We only recommend tools we use ourselves.

  • Zapier’s filter step vs. paths: when to branch and when to block

    Zapier’s filter step vs. paths: when to branch and when to block

    Zapier gives you two ways to handle conditional logic: filters and paths. They sound similar—both let you control what happens based on specific conditions—but they work differently, cost differently, and solve different problems.

    If you’ve ever built a Zap that runs but does nothing, or one that burns through tasks faster than expected, you’ve probably picked the wrong tool for the job.

    What filters do (and when they’re the right choice)

    A filter is a checkpoint. It evaluates a condition and either lets the Zap continue or stops it immediately. If the condition isn’t met, the Zap ends—no further steps run, and Zapier counts it as a task used.

    Filters work best when you want to exclude certain triggers from running the rest of your workflow. For example:

    • Only send a Slack notification if a form submission includes “urgent” in the subject line
    • Only add a contact to your CRM if their email domain isn’t gmail.com or yahoo.com
    • Only log a new row in Google Sheets if the order total is above $100

    The key trait: you’re saying “if this isn’t true, do nothing.” You’re not offering an alternative action—you’re just stopping early.

    One non-obvious benefit: filters are psychologically clean. When you review a Zap history and see tasks that were filtered out, you know exactly why they didn’t proceed. There’s no ambiguity, no hidden branch you forgot about.

    What paths do (and when you need them instead)

    Paths let your Zap fork into multiple routes based on conditions. Each path can have its own set of actions, and Zapier will execute only the path whose conditions are met. If none match, the Zap can either stop or fall through to a default path.

    Paths are the right tool when you want to route a trigger to different outcomes. For example:

    • If a new subscriber chooses “weekly digest,” add them to MailerLite list A; if they choose “daily brief,” add them to list B
    • If a support ticket is tagged “billing,” create a Stripe invoice; if it’s tagged “technical,” post to a dev Slack channel
    • If a Typeform response selects “enterprise,” send to your CRM and notify sales; if it selects “self-serve,” send a welcome email via Postmark

    The structure is “do X if A, do Y if B”—not “do X or do nothing.”

    Paths count as one step in your Zap, but each action inside a path counts separately toward your task limit. If you have three paths and only one executes, you’re only billed for the actions in that path—not all three.

    The mistake that burns tasks: using paths when a filter would do

    Here’s the pattern I see most often: someone builds a Zap with two paths. Path A has five actions. Path B is empty, labeled “Do Nothing.”

    That’s a filter dressed up as a path. And it’s wasteful.

    Every time the Zap runs, Zapier evaluates the path logic—even if the result is to do nothing. You’re adding complexity and making your Zap history harder to read. Worse, if you later add actions to Path B “just in case,” you risk doubling your task usage without realizing it.

    The fix: if one outcome is “do nothing,” use a filter instead. Reserve paths for workflows where every branch does something.

    How they affect your task count (and your bill)

    Both filters and paths count as tasks, but in different ways.

    A filter counts as a task every time the Zap runs, even if the filter stops it. If 100 triggers come in and 90 are filtered out, you’ve used 100 tasks—because Zapier had to evaluate all of them.

    A path counts as one task for the path step itself, plus one task for each action that runs inside the chosen path. If you have a three-path Zap and only one path executes two actions, you’ve used three tasks total (path evaluation + two actions).

    This means paths can be more efficient if you’re routing high-volume triggers to different outcomes. But if you’re just trying to exclude certain triggers, a filter up front will keep your history cleaner—even if the task count is the same.

    One rule of thumb that makes the decision easy

    Ask yourself: if this condition isn’t met, should something else happen, or should nothing happen?

    If the answer is “nothing,” use a filter.
    If the answer is “something else,” use paths.

    That’s it. You don’t need to overthink routing logic, task costs, or Zap readability. That one question will steer you to the right tool almost every time.

    Got a Zapier workflow that’s burning tasks faster than expected? Subscribe to One Two Three Send and get one operator-focused automation breakdown every week—no fluff, no beginner tutorials, just the details that matter when you’re running a real business.

  • Loom’s async video workflow vs. live Zoom calls: when to record

    Loom’s async video workflow vs. live Zoom calls: when to record

    Most solo operators treat video communication as binary: either you schedule a Zoom call or you send a text message. But there’s a third option that’s quietly become infrastructure for small teams and consultants — async video tools like Loom.

    The question isn’t whether async video is useful. It’s when it replaces a live call without losing clarity, and when it just creates more work.

    When async video actually saves time

    Loom works best when the communication is one-directional with optional follow-up. That means:

    • Product walkthroughs or onboarding. If you’re showing a client how to use your system, a 4-minute Loom beats a 30-minute call. They can pause, rewatch, and ask clarifying questions async.
    • Feedback on creative work. Instead of writing “the CTA button needs more contrast,” you record your screen, talk through the issue, and show exactly what you mean. The recipient doesn’t need to be there.
    • Status updates or reporting. If you’re walking through analytics, project progress, or a content calendar, async video delivers context without requiring everyone to block 30 minutes.
    • Bug reports or technical issues. Showing what’s broken — cursor movements, console errors, page behaviour — is faster and clearer than writing it out.

    The pattern: you’re delivering information, not negotiating or brainstorming. The recipient needs to understand, not co-create.

    When live calls still win

    Async video breaks down when the conversation is two-way, ambiguous, or high-stakes.

    • Sales calls or discovery. You can’t read body language or adjust your pitch in real-time via Loom. Async video works for demos after a discovery call, not instead of one.
    • Conflict resolution or difficult feedback. Tone is hard to control in async video. If the message could be misread as critical or defensive, do it live.
    • Strategy or brainstorming. If the goal is to iterate on ideas together, async video adds latency without adding clarity. A 15-minute Zoom call beats three rounds of recorded back-and-forth.
    • Complex negotiations. Pricing discussions, contract terms, partnership structure — these need real-time give-and-take.

    The test: if the other person will need to ask three follow-up questions, just schedule the call.

    The hidden cost of async video

    Loom’s free plan caps videos at 5 minutes; the paid tier (Loom Business at $12.50/user/month when billed annually) removes the limit. But the real cost isn’t the subscription — it’s response latency and context-switching.

    When you send a 6-minute Loom, you’re asking the recipient to:

    1. Notice the notification
    2. Find 6 uninterrupted minutes
    3. Watch at 1x or 1.5x speed
    4. Decide whether to reply async or schedule a follow-up

    If they’re juggling client work or deep focus time, that Loom might sit unwatched for 48 hours. Compare that to a text message (skimmable in 15 seconds) or a scheduled call (pre-committed time).

    Async video works when the recipient has slack in their schedule. If they’re underwater, it becomes a new tab they feel guilty about.

    Loom vs. Zoom: the operator’s rubric

    Here’s the decision tree:

    Use Loom when:

    • You’re explaining something visual (UI, design, analytics dashboard)
    • The recipient doesn’t need to respond immediately
    • You’d otherwise write 8+ paragraphs with screenshots
    • You’re delivering information, not seeking consensus

    Use Zoom (or a phone call) when:

    • The topic is ambiguous or exploratory
    • You need to read tone or body language
    • The conversation will have multiple back-and-forth turns
    • The stakes are high (sales, conflict, contracts)

    Use neither — just text — when:

    • The message is under 3 sentences
    • It’s purely informational (link, date, yes/no)
    • You don’t need tone or visual context

    One non-obvious Loom tip

    Enable emoji reactions in your Loom settings (under Preferences > Video Settings). Viewers can drop a thumbs-up or checkmark at specific timestamps without needing to reply. For simple feedback loops — “Does this make sense?” or “Approve this approach?” — it’s faster than waiting for a written response.

    Also: enable auto-transcription (it’s on by default in paid plans). Recipients can skim the transcript before deciding whether to watch. That alone cuts response time in half for some people.

    Async video isn’t a Zoom replacement. It’s a text-message replacement for things that need a screen. Use it when you’d otherwise write a novel with screenshots. Skip it when the conversation needs to breathe.

    Want more workflow breakdowns like this? Subscribe to One Two Three Send — we compare tools, tactics, and trade-offs for operators running online businesses. No fluff, no listicles, just the decision-making rubric.