Skip to main content

Projects — Scheduled & Continuous AI Work

A Project is a container for recurring or one-off AI work. Each time the schedule fires (or you trigger manually), FleetQ creates a ProjectRun — a timestamped execution with its own budget, status, and artifact history.

Scenario: A SaaS startup runs a daily "Churn Risk Scanner" project that analyses CRM usage data, identifies accounts that haven't logged in for 14 days, drafts personalised win-back emails, and delivers them to the CS team Slack channel.

Project types

One-Shot

Runs once on activation. Perfect for long-running data processing tasks, one-time migrations, or experiments you want to track as a project with milestones.

Continuous

Runs on a schedule — hourly, daily, weekly, or custom cron. Each run is independent. Use for monitoring, digests, lead qualification, and any repeating AI workflow.

Schedule frequencies

once
every_5_minutes
every_10_minutes
every_15_minutes
every_30_minutes
hourly
daily
weekly
monthly
cron

Cron expressions support standard 5-field syntax: 0 8 * * 1 = every Monday at 08:00. The scheduler resolves due projects every minute — sub-minute scheduling is not supported.

Overlap policies

What happens if a previous run is still active when the next schedule fires:

Policy Behaviour
skip Skip the new run. The in-progress run finishes undisturbed.
queue Queue the new run. Starts as soon as the previous run completes.
allow Allow concurrent runs. Both the in-progress and new run execute simultaneously.

Milestones

Attach business milestones to a project — e.g. "Process 1,000 leads" or "Generate 50 blog posts". Track progress on the project detail page. Milestones generate notifications when reached.

Budget per project

Set a spending cap on each project. When the total spend across all runs approaches the limit:

  • At 80%: notification sent to project owner
  • At 100%: new runs are blocked until budget is increased

Projects also inherit the team-level budget. If either budget is exhausted, runs are blocked.

Trigger a run manually

bash
curl -X POST https://fleetq.169.58.89.204.sslip.io/api/v1/projects/PROJECT_ID/trigger \
  -H "Authorization: Bearer YOUR_TOKEN"