Skip to content

Triggers & Automation

Triggers enable scheduled automation and event-driven workflows for your applications.

What are Triggers?

Triggers are scheduled tasks that:

  • Execute on a cron schedule (per-second precision)
  • Call registered backend services
  • Pass execution context and parameters
  • Support enable/disable without deletion

Creating a Trigger

Step 1: Navigate

  1. Go to Triggers in sidebar, or
  2. Open an application and click Triggers tab

Step 2: Click Create

Click Create Trigger button.

Step 3: Configure

  • Name (required) - Descriptive trigger name
  • Application (required) - Which application to trigger
  • Cron Expression (required) - Schedule (see below)
  • Run Key (optional) - Identifier for the backend
  • Description (optional) - What this trigger does
  • Enabled - Start enabled or disabled

Step 4: Save

Click Create to save.

Cron Expressions

Triggers use standard cron syntax with second precision:

 ┌─────── second (0-59)
 │ ┌────── minute (0-59)
 │ │ ┌───── hour (0-23)
 │ │ │ ┌──── day of month (1-31)
 │ │ │ │ ┌─── month (1-12)
 │ │ │ │ │ ┌── day of week (0-6, 0=Sunday)
 │ │ │ │ │ │
 * * * * * *

Common Examples

ExpressionDescription
0 0 * * * *Every hour at minute 0
0 */5 * * * *Every 5 minutes
0 0 0 * * *Daily at midnight
0 0 9 * * 1-5Weekdays at 9 AM
0 30 14 * * *Daily at 2:30 PM
0 0 0 1 * *First day of month

Testing Cron Expressions

Use online tools like crontab.guru or test in a development environment.

Per-Second Precision

Manager supports second-level precision. Add a sixth field for seconds if needed: 30 * * * * * runs at 30 seconds past every minute.

Trigger List

View all triggers with:

  • Name - Trigger display name
  • Application - Associated application
  • Schedule - Cron expression
  • Enabled - Active/Inactive status
  • Last Run - Last execution time
  • Actions - Edit, Enable/Disable, Delete

Filtering

Filter triggers by:

  • Application - Show only triggers for specific app
  • Status - Active or inactive
  • Name - Search by trigger name

Editing a Trigger

  1. Click the Edit icon on a trigger
  2. Modify fields:
    • Name
    • Cron expression
    • Run key
    • Description
  3. Click Save Changes

WARNING

Changing the cron expression takes effect immediately. The new schedule applies to the next execution.

Enable/Disable Triggers

Toggle triggers without deleting them:

From List

Click the toggle switch in the "Enabled" column.

From Edit Form

Check or uncheck the "Enabled" checkbox.

Use cases:

  • Temporarily pause automation
  • Disable during maintenance
  • Test schedule changes

Deleting a Trigger

  1. Click Delete icon on the trigger
  2. Confirm deletion
  3. Trigger is permanently removed

Deleted triggers:

  • Stop executing immediately
  • Cannot be recovered
  • Remove from backend registration

How Triggers Work

Backend Registration

For triggers to execute, your application backend must:

  1. Register with Manager using a machine user
  2. Provide a callback URL for trigger execution
  3. Keep connection alive with heartbeat signals

See Backend Registration for technical details.

Trigger Execution Flow

1. Manager checks cron schedules (every second)
2. Finds triggers due to execute
3. Looks up registered backends for the application
4. POSTs trigger payload to backend callback URL
5. Backend processes the trigger
6. Manager logs execution result

Trigger Payload

Backends receive JSON payload:

json
{
  "trigger_id": "uuid",
  "trigger_name": "Daily Report",
  "cron_expression": "0 0 * * * *",
  "run_key": "daily-report",
  "executed_at": "2025-12-01T12:00:00Z"
}

Common Use Cases

Daily Reports

Name: Daily Sales Report
Cron: 0 0 0 * * *
Run Key: daily-sales-report

Backend generates and emails sales report.

Hourly Data Sync

Name: Sync External Data
Cron: 0 0 * * * *
Run Key: data-sync

Backend fetches data from external API.

Cleanup Tasks

Name: Clean Old Logs
Cron: 0 0 2 * * *
Run Key: log-cleanup

Backend purges logs older than 30 days.

Monitoring Health Checks

Name: Health Check
Cron: 0 */5 * * * *
Run Key: health-check

Backend checks service health every 5 minutes.

Weekly Maintenance

Name: Weekly Backup
Cron: 0 0 3 * * 0
Run Key: weekly-backup

Backend performs weekly backup on Sundays at 3 AM.

Best Practices

Naming

  • Use descriptive names: "Daily Report", "Hourly Sync"
  • Include frequency: "Every 5min Health Check"
  • Avoid generic names: "Trigger 1", "Test"

Scheduling

  • Avoid peak hours - Schedule heavy tasks during off-peak
  • Stagger triggers - Don't run all triggers at same time
  • Consider time zones - Cron uses server timezone
  • Test schedules - Verify cron expression before deploying

Run Keys

  • Use consistent naming: kebab-case
  • Match backend expectations
  • Document in backend code

Monitoring

  • Check last run times regularly
  • Monitor backend logs for errors
  • Set up alerts for failed executions

Troubleshooting

Trigger Not Executing

Check:

  1. Is trigger enabled?
  2. Is application active?
  3. Is backend registered and healthy?
  4. Is cron expression valid?
  5. Check backend logs for errors

Debug:

  1. View trigger details
  2. Check last execution time
  3. Verify backend heartbeat
  4. Test cron expression

Trigger Executing Too Often

Reason: Cron expression is too frequent

Solution:

  1. Review cron expression
  2. Add delays between executions
  3. Consider aggregating tasks

Backend Not Receiving Triggers

Check:

  1. Is backend registered?
  2. Is callback URL correct and accessible?
  3. Is machine user authentication valid?
  4. Check network/firewall rules

Solution: See Backend Registration

Trigger Executing at Wrong Time

Reason: Timezone mismatch

Solution:

  1. Verify server timezone
  2. Adjust cron expression for timezone
  3. Document timezone in trigger description

Monitoring Trigger Execution

Audit Logs

View trigger execution history in Audit Logs:

  • Execution timestamps
  • Success/failure status
  • Backend responses
  • Error messages

Backend Health

Monitor backend status:

  • Last heartbeat time
  • Connection status
  • Registration details

Navigate to Machine Users → Backend details

See Also