Scheduled Triggers: Run Agents on a Cron (Hourly, Daily, Custom)
Most of what an AI agent does is reactive: a ticket lands, a customer messages, a webhook fires, and the agent wakes up to handle it. But a lot of real support work isn't triggered by an event at all — it's triggered by the clock. Someone has to post the morning queue report. Someone has to sweep the backlog for tickets that have gone quiet. Someone has to check, every hour, whether the SLA breach list is growing. Those jobs don't have an inbound trigger. They just need to happen, on a cadence, whether or not anyone remembers.
That's what scheduled triggers are for. In Macha, a scheduled trigger — the Scheduled Run — runs one of your agents automatically on a recurring interval: hourly, daily, or a custom cron schedule you define. The agent does its full job on every tick (reads data, calls its tools, takes actions, posts wherever you told it to) with no human in the loop. This post is a deep dive into how it works, where it fits, the guardrails Macha puts around it, and — just as importantly — when you should not reach for it.
A reminder on what Macha is, because it shapes how scheduled runs behave: Macha is an AI agent layer that sits on top of your existing helpdesk (Zendesk, Freshdesk, Gorgias, Front) and connects your commerce, knowledge, and comms tools — Stripe, Shopify, Slack, Notion, Confluence, Google Workspace, and more. A scheduled run isn't a hosted script in a vacuum; it's one of your configured agents, with its instructions, tools, and knowledge, fired on a timer.
What a scheduled trigger actually is
Every Macha agent has a Triggers panel — "webhooks that automatically run this agent when external events occur." Most triggers are event-driven: a new Zendesk ticket, a Slack mention, a custom webhook. The Scheduled Run is the one trigger driven by time instead of an event.
You add it the same way you add any trigger: open the agent's Triggers panel, click Add Trigger, and pick Scheduled Run from the Macha group. It then runs the agent on the cadence you set. There's no separate "scheduler agent" to build — any agent you've already configured can be put on a clock.
Macha also gives scheduled runs their own home. The Schedules page collects every recurring run across your organization in one place, so you can see what's on autopilot without opening each agent.
The model the page lays out is deliberately simple — create an agent → add a schedule → it runs automatically. You build the agent once with the instructions and tools that make it good at a job, attach a Scheduled Run with the interval you want, and from then on Macha executes it on schedule with no manual work.
Hourly, daily, or custom cron
The cadence options map to how people actually think about recurring work:
- Hourly — for high-frequency checks: SLA breach sweeps, "anything urgent sitting unassigned?" pulses, queue-depth pings.
- Daily — the workhorse: a morning metrics report, an end-of-day summary, a stale-ticket cleanup. The example schedule on the page kicks off every day at 09:00 UTC.
- Custom cron — when neither fits. Cron expressions give you weekday-only runs (
0 9 1-5), every-six-hours (0 /6), or first-of-the-month rollups (0 1 1). If you've written a crontab before, this is the same vocabulary.
Under the hood Macha runs a 60-second polling loop that checks which schedules are due and dispatches them — so a run fires within about a minute of its scheduled time, not on some slow batch cycle.
What you'd actually put on a schedule
The point of a scheduled trigger isn't to run an agent for its own sake — it's to automate a recurring output. A few patterns that earn their keep:
The daily report. An agent that, every morning, pulls yesterday's numbers from your connected tools — Stripe revenue, churn, new signups, or your helpdesk's ticket volume and CSAT — summarizes them, and posts the digest to a Slack channel. This is the canonical example, and it's exactly the @reportAgent shown on the Schedules page: "Pull daily metrics from Stripe. Summarize revenue, churn, and new signups. Post the report to Slack."
The backlog sweep. An hourly agent that searches your Zendesk or Freshdesk for tickets that have been waiting too long, or are about to breach SLA, and either flags them, re-prioritizes them, or pings the right channel. Because Macha lives on top of your helpdesk, the agent can use the same ticket tools it uses on live tickets.
The knowledge-freshness check. A weekly run that crawls your help center or Confluence space, finds articles that reference outdated facts, and drafts updates — turning documentation upkeep from a thing nobody does into a thing that happens on a cron.
The stale-ticket cleanup. A daily pass that closes or follows up on tickets that have gone quiet past your policy window, with a templated check-in reply.
One detail that makes these safe to automate: when an agent runs autonomously via a trigger, its sub-agents are allowed to perform write operations — replies, status updates — whereas in interactive chat they stay read-only. A scheduled run is autonomous, so a well-scoped agent can actually do the work, not just describe it.
The guardrails (this is the important part)
A recurring AI job that can take actions is exactly the kind of thing that goes wrong quietly — it runs too often, costs too much, or loops on an error at 3 a.m. with nobody watching. Macha ships scheduled triggers with hard limits so that can't happen.
| Guardrail | Limit | Why it exists |
|---|---|---|
| Minimum interval | 1 hour | Stops "every minute" runs that would burn credits and hammer your tools |
| Daily run cap | 24 runs/day | Bounds the per-agent volume even on the tightest cadence |
| Org concurrency | 3 concurrent runs | Prevents a pile-up of scheduled jobs from saturating your account |
| Auto-disable | after 5 consecutive failures | A broken run can't loop forever — it shuts itself off |
| Stale-lock cleanup | 30 minutes | A run that hangs releases its lock so the schedule isn't stuck |
The auto-disable behavior is the safety net that matters most. If a scheduled trigger fails five times in a row — a tool credential expired, an API is down, the instructions hit an edge case — Macha disables the trigger and emails you, rather than letting it keep firing (and keep failing) indefinitely. You fix the cause and re-enable it.
A small but telling design choice: the debounce setting that exists on event-driven triggers is hidden on scheduled ones. Debounce delays a run to coalesce a burst of events; a clock-driven trigger has no burst to coalesce, so Macha removes the control by design rather than leaving a meaningless knob on screen. It's the kind of thing you only notice because it's not there.
Plan limits
Scheduled triggers are a paid-plan capability. Professional includes 3 scheduled triggers; Enterprise includes 20. Each scheduled run consumes credits per AI action like any other agent activity — there's no separate "scheduling fee," you pay for the work the agent does on each tick (default GPT-5.4 Mini = 1 credit per action; 0.5–9 by model). See the pricing page for current plans and limits.
When NOT to use a scheduled trigger
Scheduling is easy to over-reach with, so here's the honest version.
Don't cron what should be event-driven. This is the single most common mistake, and the wider automation community is blunt about it: "How soon does your agent need to know if data changed right now? If the answer is 'immediately' — use a webhook, not a cron" (The Daily Agent). If you want an agent to respond to a new ticket, use the New Ticket trigger, not an hourly poll that scans for new tickets — the event trigger is faster, cheaper, and doesn't waste 23 empty runs a day. Reach for a schedule only when the work is genuinely time-based (a report, a periodic sweep) rather than reaction-based.
Don't expect sub-minute precision. The 1-hour minimum interval is a real floor. If you need something to happen every few minutes, scheduled triggers aren't the tool — and honestly, most "every few minutes" needs are event-driven in disguise.
Mind the limits before you design. Three scheduled triggers on Professional goes quickly if you put every nice-to-have report on its own schedule. Consolidate where you can — one daily "morning briefing" agent that posts several sections beats three separate daily agents.
Test the agent on real data first. A scheduled run is autonomous, so a misconfigured agent will make its mistake unsupervised — and, if it can write, it'll write the mistake into your helpdesk. Use Macha's Test Run to fire the agent against a real ticket or record from its config page before you put it on a clock, and start any write-capable scheduled agent in a low-blast-radius mode (internal notes only, a test Slack channel) until you've watched a few runs.
One more operational note: when you toggle an agent off, its triggers — scheduled ones included — are paused, not deleted. The schedule stops firing while the agent is inactive and resumes when you switch it back on, config intact.
How scheduled triggers compare
Scheduling agents on a cron isn't unique to Macha — Relevance AI, MindStudio, V7 Go, and others all let you run agents on recurring schedules, and general-purpose tools like Claude Code can be put on a crontab too. What's different here is what the agent is wired into. A scheduled Macha agent isn't a standalone script that has to be told how to reach your helpdesk; it's already connected to your Zendesk/Freshdesk tickets, Stripe, Slack, and Confluence through the same connectors your live agents use, with the same instructions and knowledge. The cron is the easy part — the value is that the thing firing on the cron already knows how to do support work in your stack. (See the full feature set and the triggers documentation for the complete list of trigger types.)
FAQ
What cadences can a scheduled trigger run on? Hourly, daily, or a custom cron expression. The minimum interval is 1 hour, and a single trigger is capped at 24 runs per day.
How fast does a run fire after its scheduled time? Macha polls due schedules on a 60-second loop, so a run dispatches within about a minute of its scheduled time.
What happens if a scheduled run keeps failing? After 5 consecutive failures the trigger auto-disables and Macha emails you, so a broken job can't loop indefinitely. You fix the cause and re-enable it. A run that hangs has its lock cleared after 30 minutes.
Can a scheduled agent take real actions, or only read? It can take actions. Scheduled runs are autonomous, and sub-agents gain write permissions in autonomous mode — so a scoped agent can reply, update tickets, or post to Slack on schedule. Test it first.
How many scheduled triggers do I get? Professional includes 3 and Enterprise includes 20. Each run consumes credits per AI action like any other agent activity. See the pricing page.
When should I use a webhook instead of a schedule? Whenever the work is a reaction to an event — a new ticket, a message, an external webhook. Use a schedule only for genuinely time-based work like reports and periodic sweeps. Don't cron what should be event-driven.
Put one agent on a clock
The fastest way to understand scheduled triggers is to ship one. Take an agent you already trust on live work, give it a Scheduled Run, and let it post your morning queue summary to Slack tomorrow at 9. Start a 7-day free trial, no credit card required, connect your helpdesk, and read the triggers docs for the full walkthrough — or browse more capability deep-dives on the blog.
Written by Abbas (Customer Support & AI, Macha) · Reviewed by Ankeet Guha (Co-founder & CTO) · Published 2026-06-24 · Last updated 2026-06-24.
Resolve tickets automatically with AI agents
Macha's AI agents work on top of the help desk you already use — no code.
Shopify
Stripe
Slack
Notion
Google Workspace
Confluence

