Skip to main content

AI Tasks

Coming soon

AI Task is under rapid development. Specs and design may change.

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.
AI Task

Create an AI Task

Where to create an AI Task

Go to Development, then click Add 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:

AiSchedule {
cron:
run_as:
targets: //One or more AiTask 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

Summarize last week's sales by region using the team's reporting conventions, and flag any region that moved more than 15%.

  • Label: Weekly sales report
  • Description: Summarizes last week's sales by region and flags unusual moves, following the team's sales reporting conventions.
  • Brief: Call the /sales_reporting_conventions for the comparison window (last full week vs. the week before), region groupings, and currency formatting. Summarize last week's sales by region under those conventions. Flag any region where revenue moved more than 15% week-over-week, using the /anomaly_investigation to walk through dimension breakdowns (channel, product line, rep) and name the driver.
  • Acceptance Criteria: Every region above the 15% WoW threshold is flagged, and no region below it is flagged. Each flagged driver is backed by a real dimension breakdown from the /anomaly_investigation, not invented.

AI Chat Insights rollup

Roll up last week's AI Chat Insights into a ranked list of the context gaps affecting the most conversations.

  • Label: AI Chat Insights rollup
  • Description: Aggregates last week's AI Chat Insights and ranks the context gaps affecting the most conversations.
  • Brief: Review all AI Chat Insights from conversations in the past 7 days. Group similar Suggestions together (e.g., the same dataset missing a metric definition, or the same model with a stale description). Rank groups by how many conversations they affected. Output the top 5 groups, each with: the specific object affected (dashboard, dataset, model, or Skill), a one-line description of the gap, the number of conversations it impacted, and the suggested fix, quoted from the original Suggestion, not reworded.
  • Acceptance Criteria: Lists at most 5 groups, ranked by conversation count descending. Every group cites real conversation timestamps or IDs as evidence, names one specific object, and includes a fix taken directly from an existing Suggestion (no invented recommendations).

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 :)