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.
What a plan is
Section titled “What a plan is”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.
Guardrails
Section titled “Guardrails”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. |
Honest about partial data
Section titled “Honest about partial data”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.
A very large request can also reach its row limit. The report then shows a Based on a partial sample notice, so a partial figure is never presented as a complete one. Narrow the request if you need exact numbers.
Spotlight never silently drops data.
Editing a plan
Section titled “Editing a plan”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.
Examples of requests that become plans
Section titled “Examples of requests that become plans”- “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.
- Draft with AI - where plans come from.
- Troubleshooting - reading the Incomplete data notice.