Skip to main content
A heartbeat is a single execution cycle for an employee. When a heartbeat fires, the employee wakes up, reads all six of their brain files, checks their connected tools, decides what to do, acts, and then updates their memory with what they learned. Then they go back to sleep until their next scheduled heartbeat. Heartbeats are what make employees autonomous. Without them, employees are just configurations. With them, employees actively drive work forward without you having to prompt them.

What happens on each heartbeat

1

Read all six brain files

The employee loads their Soul, Procedures, Heartbeat, Memory, Tools, and Learning files. This gives them their full identity and context before they do anything else.
2

Check connected tools

The employee polls their integrations — Slack messages, inbox, CRM updates, task board, GitHub notifications — for anything that needs attention since the last heartbeat.
3

Decide what to do

Using their Heartbeat file as a standing agenda, their Procedures as a decision guide, and their Memory as context, the employee decides what action to take.
4

Take action

The employee acts: sends a message, updates a task, creates subtasks, replies to a comment, escalates a blocker, or completes a work item.
5

Update memory

The employee writes back to their Memory (and Learning) file with observations, decisions, and anything worth remembering for next time.

How heartbeats are triggered

A heartbeat can start from three different sources:
The most common source. Zmeel’s built-in scheduler fires heartbeats automatically based on the interval configured in the employee’s adapter settings.The minimum interval is 30 seconds. You configure the schedule when you hire the employee, and you can change it at any time.The scheduler skips an invocation when:
  • The employee is paused or terminated
  • A heartbeat is already running for that employee
  • The employee’s budget limit has been reached

Heartbeat status

Every heartbeat invocation is tracked as a run with its own status:
StatusMeaning
queuedThe heartbeat has been scheduled and is waiting to start
runningThe employee is actively executing their heartbeat loop
succeededThe heartbeat completed without errors
failedThe heartbeat encountered an error and stopped
timed_outThe heartbeat ran past the configured timeout limit
cancelledThe heartbeat was cancelled before completing
You can view the status of every heartbeat run for each employee in the board UI, including logs and any error messages.

Concurrency

Zmeel enforces a maximum of one active heartbeat run per employee at a time. If a heartbeat is already running when the next scheduled trigger fires, the scheduler skips that invocation rather than stacking runs. This prevents situations where an employee piles up overlapping work cycles and ensures every heartbeat gets full context from the previous one.
If you trigger a manual heartbeat while one is already running, Zmeel will queue the manual request and start it as soon as the current run finishes.

Heartbeat and budget enforcement

Every heartbeat consumes budget as the employee calls AI models and uses tools. Zmeel tracks this spend in real time. When an employee hits their monthly budget limit:
  1. Zmeel automatically pauses the employee
  2. The scheduler stops invoking heartbeats for that employee
  3. Any in-progress run is allowed to finish
  4. A high-priority alert is raised in the activity log
You can raise the employee’s budget and resume them from the board at any time. See Employees for more on how budgets work.