Docs / FlowCRM AI

Crons

Configure server cron jobs, Laravel Scheduler, URL cron triggers, Artisan commands, and FlowCRM background tasks.

Estimated reading: 4 minutes

Crons

The Crons page explains how FlowCRM AI background tasks should be configured on a production server. Cron jobs keep scheduled plan changes, notifications, workspace signals, automations, analytics snapshots, SaaS usage snapshots, marketplace updates, and demo refresh tasks running without manual admin action.

Main Requirement: Run Laravel Scheduler

The recommended production setup is to configure one server cron entry that runs Laravel Scheduler every minute. Laravel Scheduler then runs all internal FlowCRM AI tasks at their correct frequency.

* * * * * php /path/to/flowcrmai/artisan schedule:run >> /dev/null 2>&1

Replace /path/to/flowcrmai with the real installation path on your server. On shared hosting, use the hosting panel cron manager. On VPS or dedicated hosting, use crontab -e.

URL Cron Alternative

If the hosting provider does not allow direct PHP CLI cron commands, use the Admin Workspace cron URL method. Go to Admin Workspace > Settings > Crons and copy the secure URL cron command for Laravel Scheduler or a specific task.

  • Keep the secure cron key private.
  • Regenerate the key if it is exposed.
  • After regenerating the key, update every server cron that uses the old URL.
  • Prefer Artisan cron when the server supports it because it is faster and avoids HTTP timeout limits.

FlowCRM AI Scheduled Tasks

The tasks below are registered by the core application or by their owning module. If a module is removed, its cron task disappears from the Admin Crons list automatically.

Laravel Scheduler

  • Command: schedule:run
  • Frequency: every minute
  • Purpose: main cron entry point that dispatches every scheduled command internally.
  • Required: yes, recommended for all production installations.

Scheduled Plan Activation

  • Command: plans:activate-scheduled
  • Frequency: every minute
  • Owner: AppPayments module
  • Purpose: activates scheduled plan downgrades or plan changes when the current billing period expires.

FlowCRM Workspace Signals

  • Command: flowcrm:detect-ai-signals --scope=workspace
  • Frequency: every 5 minutes
  • Purpose: detects workspace delivery risk, overdue work, approval pressure, and operational bottlenecks.

FlowCRM Approval Bottlenecks

  • Command: flowcrm:detect-ai-signals --scope=approvals
  • Frequency: every 15 minutes
  • Purpose: detects concentrated approval delays by stakeholder, project, and pending signoff state.

FlowCRM Stakeholder Risk Signals

  • Command: flowcrm:detect-ai-signals --scope=stakeholders
  • Frequency: every 15 minutes
  • Purpose: detects inactive stakeholders, portal silence, missing follow-up, and client relationship risk.

FlowCRM Automations Runner

  • Command: flowcrm:run-automations --ensure-defaults
  • Frequency: every 15 minutes
  • Owner: AppAutomations addon
  • Purpose: runs trigger-condition-action automation rules and can ensure default workflow rules exist.
  • Note: this cron appears only when the Automations addon is installed.

Operational Notifications Processor

  • Command: notifications:process-operational
  • Frequency: every 5 minutes
  • Owner: AdminNotifications module
  • Purpose: processes scheduled notifications, operational alerts, unread delivery, and escalation rules.

FlowCRM Metrics Snapshot

  • Command: flowcrm:snapshot-metrics
  • Frequency: hourly
  • Purpose: builds analytics snapshots for workspaces, projects, and stakeholders.

SaaS Usage Snapshot

  • Command: saas:snapshot-usage
  • Frequency: hourly
  • Purpose: builds usage snapshots for credits, storage, seats, and AI calls.

Marketplace Auto Update

  • Command: marketplace:auto-update
  • Frequency: hourly
  • Purpose: checks installed marketplace purchase packages and updates them when auto-update is enabled.

Admin Faker Rebuild

  • Command: admin-faker:refresh --no-clear
  • Frequency: daily at 02:00
  • Purpose: refreshes demo data for demo environments.
  • Note: production buyers normally do not need this unless they intentionally run a demo site.

Blogs RSS Import

  • Command: blogs:rss-import
  • Frequency: every minute when RSS imports are used
  • Purpose: imports blog posts from configured RSS sources that are ready for processing.
  • Note: only configure this when RSS blog automation is part of your product setup.

How to Verify Cron Is Working

  1. Open Admin Workspace > Settings > Crons.
  2. Confirm the Laravel Scheduler task is visible.
  3. Copy the Artisan cron command or URL cron command.
  4. Add the cron to the hosting control panel or server crontab.
  5. Wait a few minutes, then check that scheduled notifications, signals, snapshots, or plan transitions update automatically.
  6. Run php artisan schedule:list from SSH if available to inspect registered tasks and next due times.

Recommended Production Setup

  • Use one main Laravel Scheduler cron every minute.
  • Do not create separate server cron entries for every task unless your hosting provider requires URL-based execution.
  • Use separate URL cron entries only when you cannot run php artisan schedule:run.
  • Keep cron output redirected to logs or /dev/null to avoid large email notifications from the server.
  • After changing modules, clearing cache, or installing addons, revisit the Crons page to confirm the task list is still correct.

Troubleshooting

Scheduled actions do not run
Confirm the server cron calls php artisan schedule:run every minute and uses the correct project path.

Signals are not appearing
Confirm the AI signal cron tasks are listed and that workspace data exists. Also check AI provider and credit settings if real AI is enabled.

Automations do not run
Confirm the AppAutomations addon is installed and the flowcrm:run-automations --ensure-defaults task appears in Admin Crons.

Plan changes do not activate
Confirm plans:activate-scheduled is listed and that the payment module is installed.

URL cron returns unauthorized
Confirm the secure cron key in the URL matches the key shown in Admin Workspace > Settings > Crons.