The Task Engine runs scheduled jobs — anything that should happen automatically on a cadence rather than in response to a user action. Maintenance jobs, recurring imports, billing runs, cleanup, scheduled reports, monitoring checks, automated reminders. If you'd write a cron job for it on a traditional Unix system, you'd write a Task in ActiveManage.
How it runs
A cron job (or equivalent scheduled trigger) on the server calls the platform's task runner every minute. The runner:
- Queries the
.taskstable for tasks whose next-run time has been reached. - For each due task, executes its handler (a PHP function or built-in action).
- Records the run in the Task Log with start/end timestamps and any output.
- Computes the next-run time based on the task's schedule.
The system-level cron entry that triggers all this is typically * * * * * /usr/local/bin/php /home/site/activemanage/taskengine.php. It runs every minute; tasks scheduled less frequently than once-a-minute are handled by the Task Engine deciding which to actually run.
Where tasks live
Architect Panel → Automation → Tasks. Each task has:
- Name — internal name.
- Schedule — cron-style expression.
- Handler — the PHP function or built-in action to run.
- Parameters — JSON object passed to the handler.
- Enabled — toggle to disable temporarily.
- Last run / Next run — automatic, computed by the engine.
- Recent log entries — visible from the task detail page.
Three real-world tasks
Example 1: Nightly cleanup
Name: "Purge soft-deleted records". Schedule: 0 2 * * * (2am daily). Handler: a custom PHP function that hard-deletes rows where MSTisdeleted = 1 and they've been soft-deleted for more than 90 days. Keeps the database from growing unboundedly with soft-deleted records.
Example 2: Monthly billing run
Name: "Monthly subscription billing". Schedule: 0 3 1 * * (3am on the 1st of each month). Handler: iterates subscription packages, charges each active subscription via Stripe, records the transaction, sends invoice emails. Critical infrastructure for any SaaS install.
Example 3: Hourly status check
Name: "Health check external dependencies". Schedule: 0 * * * * (every hour on the hour). Handler: calls each configured external API, records response time and status, alerts if any are failing. Provides visibility into upstream health.
The Task Log
Every task execution is recorded. See the Task Log article in this section for details on what's captured and how to debug failed tasks.

