📅 1. Scheduling Options

Automation supports a variety of scheduling types to fit different needs:

🔹 Once at a Specific Time

Run a task one time at a fixed date and time.

Example:

Run a data deduplication task on 1st July 2025 at 02:00 AM to clean a newly imported marketing list.


🔹 Every X Hours/Days

Run a task repeatedly at fixed intervals, starting from a specified time.

Example:

Run a "clean contacts" task every 6 hours starting at 9:00 AM to ensure CRM data is continuously updated.


🔹 Specific Days of the Week at Specific Times

Configure a task to run on certain weekdays and times.

Example:

Run an address verification task every Monday and Thursday at 7:30 PM, just before weekly campaign launches.


🔹 Specific Days of the Month

Schedule tasks to run on dates like the 1st, 15th, or 30th of each month.

Example:

Run a full dataset deduplication every 1st and 30th at 1:00 AM before monthly reports are generated.

🔔 Note: If the scheduled date doesn’t exist in a month (e.g., the 30th in February), the task is skipped. There’s no built-in option yet for "last day of the month."


🪄 2. Task Execution Logic

✅ Single Task Instance

Only one task from a schedule can run at a time to avoid conflicts or duplicates.

📥 Task Queuing (FIFO)

If a task is missed (e.g., due to system load or overlap), it is added to a First-In-First-Out (FIFO) queue. Only one missed task per schedule ID is kept in the queue.

Example:

If a task is set to run hourly but the system is busy for 3 hours, only one instance is queued and executed once the system is free.


🚫 Queue Limitations

  • Max 20 queued tasks total
  • If the system restarts, the queue is cleared (missed tasks are not retried)
  • Tasks in the queue are prioritized over newly scheduled tasks at that moment

📉 3. Failure Handling

⚠️ “Stop on Fail” Setting

  • If enabled (True):
    • Task will not run again if it fails once.
  • If disabled (False):
    • Task will continue running at its next scheduled time regardless of previous failure.

Example:

If a phone number validation task fails due to a server issue:

  • With Stop on Fail = True, it will stop entirely until manually fixed.
  • With Stop on Fail = False, it will try again at the next scheduled time.

📋 4. Logging and Monitoring

Each automation task produces two logs:

  • Start Log: Marks the beginning of the task.
  • End Log: Shows success or failure and any relevant output.

The system uses these logs to determine:

  • If a task should rerun
  • If it previously failed or completed successfully
  • How to apply the “Stop on Fail” rule

Example:

If the service is interrupted during a task and the end log is missing, the system assumes it failed and reschedules it as normal at the next due time.


⏱️ 5. Timer Behavior

  • The internal scheduler checks for tasks every minute.
  • It does not guarantee second-level precision (e.g., 09:00:05 or 09:00:55).
  • Time comparisons ignore seconds — only HH:mm is used.
  • The task is launched in the exact scheduled minutenot later.

Example:

A task scheduled at 12:00 will trigger anytime between 12:00:00 and 12:00:59 but must be initiated within that minute.


✅ Best Practices

  1. Stagger heavy tasks to prevent overlap.
  2. Use "Stop on Fail" for sensitive jobs where failure needs intervention.
  3. Review logs regularly to catch issues early.
  4. Avoid relying on 29th–31st for monthly schedules.
  5. Plan for service restarts – missed tasks are not retried.