Skip to content

Custom Plans (AI-built)

Some requests don’t fit a JQL-plus-grouping chart: “SLA performance this month”, “the 10 oldest unresolved issues with days open”, “role counts per project”. For these, Draft with AI composes a custom plan - a small, declarative, read-only pipeline over Atlassian REST APIs, built specifically for your request.

This is what makes Spotlight open-ended: instead of a fixed menu of reports, the AI assembles the report your request needs from safe building blocks.

A plan is a JSON definition with two parts:

  • Steps - fetch data from Jira REST endpoints, then transform it (filter, group, sort, compute durations, look up related items).
  • Outputs - up to six widgets bound to the resulting rows: stat tiles (single numbers), tables, and charts.

When you draft one, Spotlight summarizes exactly which endpoints the plan will read before you save it.

Plans run inside a strict sandbox. Every plan - whether AI-drafted or hand-edited - is validated against the same rules before it runs:

Guardrail Rule
Read-only GET requests only. A plan cannot write, update, or delete anything.
Endpoint whitelist Only Jira (/rest/api/3), Jira Software (/rest/agile/1.0), and Jira Service Management (/rest/servicedeskapi) APIs. Nothing else - and never anything outside Atlassian.
Your permissions Plans execute in the viewer’s browser with the viewer’s own Jira permissions - a plan can never show you data Jira wouldn’t.
Bounded work At most 8 steps, 30 HTTP calls per run, 25 per-item lookups per step, fetches capped at 1,000 rows per step, 6 output widgets.

Some lookups can legitimately fail: an SLA endpoint returns 404 for issues that aren’t JSM requests; a 403 means you lack permission for that item. When this happens, the report still renders - and an Incomplete data notice states how many lookups failed, in which step, and with which status codes. Spotlight never silently drops data.

The plan JSON is visible and editable in the builder (Plan (JSON) field) - power users can adjust filters, columns, or limits directly. Every edit is re-validated against the guardrails above before saving. If you’d rather not touch JSON, re-draft with a refined description instead.

  • “SLA performance dashboard for our support project” - JSM SLA lookups per request, aggregated into met/breached stats and a table.
  • “10 oldest unresolved issues with days open” - a search plus a computed duration column, sorted and limited.
  • “How many people hold each role across our projects?” - project role reads aggregated into a per-role chart.