floogos
    Back to blog
    Product

    Automations That Run for Hours: Designing Them So They Don't Get Cut Off

    Not every process finishes in seconds. A nightly sync against an ERP can take hours — and that's fine, if the design accounts for it.

    Floogos Product Team8 min read
    Automations That Run for Hours: Designing Them So They Don't Get Cut Off

    There are two worlds in automation. In one, a form triggers an email and everything is done in two seconds. In the other, a nightly process walks tens of thousands of ERP records, cross-references them against a logistics system and generates documents. The first fits in any tool. The second is where most of them break. This article is about the second: what it really means for a process to "take a long time", why time limits exist, and how to design high-volume automations that don't get cut off halfway.

    editor · flow
    Trigger
    →
    Transform data
    →
    Decision
    →
    Action
    Representative illustration (not an actual screenshot).
    01

    Tell slow apart from runaway

    They look the same from outside, but they are opposite problems and the fixes are opposite too:

    • Slow: few steps that take a long time (a heavy query, a slow API)
    • Runaway: a huge number of steps in no time (a loop that never ends)
    • A slow process is legitimate and needs room to breathe
    • A runaway process needs to be cut as soon as possible

    💡 Tip: if your process runs few nodes over a long period, it's slow, not broken. Giving it a short time limit only breaks it for real.

    02

    Fit the time limit to reality

    The maximum time per execution exists so a badly built flow can't run forever. But a low value gets in the way of legitimate processes:

    • Measure how long it really takes on a high-volume day, not a quiet one
    • Leave headroom: month-end peak isn't an average Tuesday
    • In Floogos the limit can be raised or removed entirely
    • The brake against loops is the step budget, not the clock — removing the time limit doesn't leave you unprotected

    💡 Tip: measure the real worst case before setting any limit. A number picked by feel always ends up cutting the wrong execution.

    03

    Break the volume into batches

    The best way to keep a long process from being cut is for it to stop being a long process:

    • Process in batches (by date, by branch, by ID range) instead of all at once
    • Each batch is a short, independent execution
    • If one fails you retry just that one, not the whole eight hours
    • You gain visibility: you see progress instead of waiting blind

    💡 Tip: batching doesn't just avoid cuts, it also lowers the memory each execution consumes. Two problems, one decision.

    04

    Attack the slow node, not the whole process

    When a single step eats most of the time, the problem is there and not in the flow:

    • A query without an index can take minutes where it should take seconds
    • Fetching every column when you need three multiplies transfer time
    • Filter at the source: better the database returns 500 rows than filtering 50,000 afterwards
    • Set timeouts on the node itself, not only on the whole execution

    💡 Tip: before raising any limit, look at which node eats the time. Often a properly indexed query turns an hours-long process into a minutes-long one.

    05

    Find out when something gets cut

    A nightly process that fails silently is worse than one that doesn't exist, because you think it worked:

    • Set up an alert flow that fires on any failure
    • Include the reason and the last executed step in the notification
    • A time cut and a loop cut call for different actions: tell them apart
    • Review the execution history, not just the final result

    💡 Tip: the valuable signal isn't "it failed", it's "it failed here and for this reason". Without that, diagnosis turns into guesswork.

    Checklist for high-volume processes

    Real duration measured on a high-volume day
    Execution limit set accordingly (or removed, if appropriate)
    Volume split into independent batches
    Queries filtered at the source and indexed
    Dedicated timeout on the slow nodes
    Automatic alert on any failure
    Failure reason visible in the notification
    Retry possible per batch, not for the whole process

    Frequently asked questions

    How long can an automation run in Floogos?

    Up to one hour by default, and the limit can be raised or removed entirely. For high-volume nightly processes it's common to extend it or run with no cap.

    Is it dangerous to remove the time limit?

    No, because time isn't the main defence against loops. An infinite loop runs thousands of steps in seconds and hits the step budget long before any clock runs out. A slow but correct process runs few steps over a long period and never comes close to that budget.

    Why did my process get cut at 63 minutes if the limit was 60?

    Because the cut never splits a step in half. If the limit expires while a query is running, the engine waits for it to finish and cuts right after. It's deliberate: cutting mid-step would leave open transactions or half-written files.

    Should long processes always be batched?

    Almost always yes. Batching reduces the risk of being cut, lowers memory usage, lets you retry only the part that failed and gives you visibility of progress. The cost is a little more design up front.

    The processes that move real volume are the ones that generate the most value and the ones most tools handle worst, because they assume everything finishes in seconds. Designing for volume means telling slow apart from broken, batching where you can, attacking the slow step instead of the whole process, and always finding out when something got cut. With that, an eight-hour sync stops being a risk and becomes just another process that runs at night.

    Keep exploring

    Share: