Skip to content

Tasks

Tasks are reusable units of work that define what an assistant should do. A task describes the objective, the expected output type, and optionally which tools the assistant is allowed to use. Tasks can be run manually, automated with schedules, or triggered from external services via the Web Trigger.

Creating a Task

Navigate to Tasks in the sidebar and click New Task.

FieldDescription
NameA descriptive name for the task (e.g., “Weekly Blog Post”, “Competitor Analysis”)
Output TypeThe type of deliverable the task should produce
DescriptionDetailed instructions for the assistant — what to do, how to do it, and what the output should look like
Allowed ToolsOptionally restrict which tools the assistant can use. Leave empty to allow all tools.
ActiveWhether the task is available for scheduling

Output Types

The output type tells the assistant what kind of deliverable to create. Available types depend on your installed plugins but typically include:

TypeDescription
FreeformNo specific output format required
Blog PostA structured blog article
ReportA detailed report or analysis
SummaryA concise summary or brief
ImageA generated image
ProofreadingText review and editing
FileA file output (spreadsheet, document, etc.)

Tool Restrictions

By default, tasks allow the assistant to use all available tools. You can restrict this by selecting specific tools in the Allowed Tools field. This is useful for:

  • Limiting a research task to only use search_knowledge and web_search
  • Preventing a content task from modifying schedules or project state
  • Ensuring a proofreading task only uses get_deliverable and save_content

The allowed tools list includes both built-in tools and any plugin tools available on the project.

Task Runs

Each time a task is executed, a task run is created to track the execution. On the task detail page, you can see the history of recent runs with:

  • Status — Whether the run is in progress, completed, or failed
  • Started / Completed — Timestamps for the execution
  • Conversation — A link to the conversation created for the run
  • Deliverables — Any content produced during the run

Task runs are created automatically when a schedule triggers a task, when a task is executed manually, or when triggered via the Web Trigger by passing the task’s ID in the task_definition_id field.

Technical Details

How task execution works — When a task runs, the system creates a new conversation with the task description as the initial user message. The assigned assistant then runs through its normal agent loop — assembling a system prompt, calling the LLM, executing tools, iterating — exactly as it would in an interactive chat. The conversation is linked to a TaskRun record for status tracking, and any deliverables produced are associated with both the task run and the conversation.

Tool restriction — The allowed_tools field on a task definition acts as a filter on top of the assistant’s own tool configuration. Only tools that appear in both the assistant’s enabled tools and the task’s allowed tools list are available during execution. If the allowed tools list is left empty, all of the assistant’s enabled tools are available.

Task run lifecycle — A task run progresses through these states: pending (created but not yet started), running (the agent loop is active), completed (the agent finished successfully), awaiting_review (draft content was produced), or failed (an unrecoverable error occurred). Failed task runs are not retried — because the agent loop may have already executed tools with side effects (sent emails, created content, modified project state), retrying could cause duplicate actions.

Notifications — When a task run finishes (regardless of outcome), a notification is sent to the task owner. The notification type depends on the final status: task_completed, task_awaiting_review, or task_failed. Users can configure which delivery channels they receive these on (in-app, email) via their notification preferences. Events are also broadcast to any configured system webhooks.

Active and Inactive Tasks

Toggle the Active checkbox to control whether a task is available for scheduling. Inactive tasks cannot be assigned to new schedules but existing schedules referencing them are preserved.