Skip to main content

AI Tasks

What is an AI Task?​

An AI Task is a reusable unit of AI work that you define once and run automatically on a schedule or on demand.

Use an AI Task for work that is:

  • Repetitive: it needs to happen regularly (daily, weekly, monthly).
  • Has a clear definition of done: you can describe what a good output looks like.
  • Doesn't need your presence: it can run without you being online.

Because the task has explicit acceptance criteria, every run is automatically evaluated (pass or fail), not just generated. This means:

  • Consistent output: the AI follows the same brief every time.
  • Verified results: the output is checked against your criteria before the task is marked complete.
  • Full automation: runs on a schedule without any manual triggering.

Create an AI Task​

Where to create an AI Task​

Go to Development. There are two ways:

  • UI: in the Project Explorer, click Add AI Task.
  • AI chat panel: ask freeform, e.g. "Create a task to summarize last week's sales by region at 8am every Monday."
AI Task

What goes into an AI Task​

Below are the essential inputs you'll see on the UI. For advanced settings, see How it works in code.

  • Name (required): The task's unique identifier, e.g. revenue_weekly_insight. Used to reference the task in a schedule or slash command.
  • Label (required): Display name shown in the AI Tasks management page.
  • Description (optional): A short note about what the task does, useful for teammates browsing the list.
  • Brief (required): What you want the AI to complete. You can reference specific dashboards or datasets, and call on AI Skills to guide how the AI approaches the work.
  • Acceptance Criteria (required): What a successful output looks like.

Schedule an AI Task​

An AI Schedule defines when to run which AI Tasks, automatically. When creating an AI Task, you have the option to create a schedule for it.

What goes into a schedule:

  • Time and frequency (required): When the task runs, e.g. every Monday at 8am, or on the 1st of every month. Follows your workspace timezone setting.
  • Run as (required): The user identity the task executes as. The AI sees only what this user can see. If the user is deactivated or deleted before the schedule fires, the run fails.

View published AI Tasks​

Go to the AI Tasks page to see all published AI Tasks. The list shows each task's label, associated schedule, last run time, and last run status (running / success / failure).

AI Tasks page

Click a task to see its run history. Each run record includes:

  • Status and timestamps (start time, end time).
  • The trigger type: whether it was run by a schedule or triggered manually.
  • The full output conversation, which you can read and continue from directly.

Run an AI Task​

"Run as" permission​

Which user's permission an AI Task runs as depends on how it's triggered:

  • Run manually: runs as the current user.
  • Run on schedule: runs as the schedule's "Run as" user.

Run manually​

You can run an AI Task manually in two places:

  • In Development: Use the slash command /task-name in the AI Copilot chat page. Useful for testing and iterating before publishing.
  • In Reporting (after publishing):
    • Click Run on the AI Tasks management page.
    • Use the slash command /task-name in the Ask AI chat page.

Run on schedule​

If an AI Task is configured to run on a schedule, it executes automatically on the configured cadence.

How it works in code​

AI Task and AI Schedule are independent building blocks: one task can be targeted by multiple schedules, and one schedule can run multiple tasks.

AiTask and AiSchedule
  • When you create an AI Task, an AiTask is created in an .ai_task.aml file under settings/ai/tasks/.
  • When you schedule an AI Task, an AiSchedule is created in the schedules.aml file.

AiTask definition in code:

AiTask name {
label:
description (optional):
brief:
acceptance_criteria:
timeout_minutes (optional):

// Advanced settings:
output_schema (optional):
branch (optional):
}

Advanced settings not covered above:

  • Output Schema (optional): A JSON schema defining the expected structure of the output. Use this when you need the result in a specific format, for example when a downstream system needs to parse it.
  • Branch (optional, default: production): Which version of your data model the AI works against. 'Development' is coming soon.

AiSchedule definition in code:

Each AiSchedule is an item in the schedules list in schedules.aml. When the list has more than one schedule, separate them with a comma:

const schedules = [
AiSchedule {
cron: '0 8 * * 1' // every Monday at 08:00
targets: [weekly_sales_report]
},
AiSchedule {
cron: '0 9 1 * *' // the 1st of every month at 09:00
targets: [order_return_anomaly_check, ai_chat_insights_rollup]
}
]
  • cron: when the schedule runs, as a cron schedule expression.
  • run_as: the email of the user the tasks run as.
  • targets: one or more AiTasks to run.

AI Task vs. AI Skill​

What's the difference​

If you're already using AI Skills, here's how a Task is different.

AI SkillAI Task
What it isInstructions on how the AI should approach the workDefines what the AI should complete, with a clear definition of "done"
When to useYou want consistent answers for repetitive workYou have repetitive work to complete, need the output verified (not just generated), or have a potential need for automation

Example

  • AI Task: Summarize last week's revenue by region and flag anomalies.
    • Definition of done: produced a correct summary with relevant anomalies flagged.
  • AI Skill: How to calculate revenue, how to detect anomalies.
  • AI Schedule: Run this Task every Monday morning.

Using them together​

Many times AI Task and AI Skill are meant to use together, not chosen between. Pick whichever matches how the work shows up, then let it evolve. There's no wrong starting point.

  • Start with a Skill for a way of working that applies across many jobs: team conventions, formatting rules, or a workflow you repeat often. E.g., "how to compute a P&L" or "always use ISO week for time periods."
  • Start with a Task when you already know the specific job and what "done" looks like. E.g., "summarize last week's revenue by region and flag anomalies, every Monday."
  • Task → Skill: when the same instructions keep showing up across multiple Task briefs, extract them into a Skill so future Tasks can just reference it.
  • Skill → Task: when you keep invoking the same Skill for the same outcome on a regular basis, wrap it in a Task with a definition of done (and a Schedule if it needs to run unattended).
  • A Task can call a Skill, not the reverse: a Task's brief can invoke existing Skills to guide how the AI approaches the work, but a Skill can't kick off a Task on its own — someone still has to assign the job.

Example use cases​

Weekly sales report

Call /sales_reporting_conventions for the comparison window, region groupings, and currency formatting. Summarize last week's sales by region under those conventions, call out the key insights, and send the summary to the #sales-weekly Slack channel.

Order return anomaly check

Catch order return issues early: compare this week's @order_returns volume per reason against the trailing 8-week baseline, flag any reason with an abnormal spike or any reason absent from that baseline, state the volume vs. baseline and a likely driver for each flag, and notify the #support-alerts Slack channel and the support lead's email when something's flagged.

AI Chat Insights rollup

Roll up last week's AI Chat Insights: group similar Suggestions from the past 7 days (e.g., the same dataset missing a metric definition), then output the top 5 groups by conversation count, each with the affected object, the gap, and the fix quoted from the original Suggestion.

Send an email or Slack with AI Task​

Coming soon

We're building a delivery solution for AI Tasks.

Today, an AI Task's output lives in its run record: you (or a teammate) open the run to read the result. Soon, an AI Task will be able to deliver its output directly, so a task like "summarize last week's revenue by region and flag anomalies" can end with that summary landing in a Slack channel or an inbox, with no manual step to copy it out.


Open Markdown
Let us know what you think about this document :)