Digest for Jira — documentation
Digest folds a period's worth of Jira changes into one structured summary — issues created, status transitions, assignments to you, priority changes, comments that @mention you — delivered to an in-app inbox you read when you choose. It is not a notification rules engine: it does not filter, rewrite or intercept Jira's own notifications.
Digest is built on Atlassian Forge. This release requests read-only Jira scopes, and there are no external servers — no data leaves Atlassian's infrastructure, so there is nothing extra for a vendor security review to look at.
Getting started
- Open Apps → Digests in Jira.
- Create a subscription: a JQL query, a cadence — daily at a chosen time, or weekly on a chosen day — a time zone, and a grouping (by project, assignee or status).
- Hit Run now to see the first digest immediately instead of waiting for the schedule. It lands in the inbox on the same page.
- From then on, each period folds into one digest, delivered within the hour it is due.
Subscriptions are strictly personal. You create and manage your own; nobody else's subscriptions appear in your list, and yours appear in nobody else's.
What a subscription contains
| Field | Notes |
|---|---|
| JQL query | Anything you could run in the issue navigator. A broken query pauses the subscription with Jira's own error message. |
| Cadence | Daily at a chosen time, or weekly on a chosen day. |
| Time zone | Your own IANA time zone. “Daily at 09:00” means your 09:00, not the server's. |
| Grouping | By project, assignee or status — how the digest arranges its entries. |
| Empty digests | Off by default. A period with no changes delivers nothing unless you tick Send even when nothing changed. |
What goes into a digest
Each run collects what changed in the window and classifies it:
- Issues created
- Status transitions
- Assignments to you
- Priority changes
- Comments that @mention you
An entry is an issue key, a truncated summary and short change labels like Status: To Do → In Progress — never descriptions, comment bodies or rich text. That restraint is a privacy property as much as a layout one: see what the app stores.
When more than 50 issues changed in the window, the digest shows the 50 most notable and says “and N more”, with a deep link that opens the full result in the issue navigator.
The inbox
Digests are delivered to the inbox under Apps → Digests: newest first, with unread counts and a mark all read control. Nothing is emailed; you read the summary when you choose to.
The inbox keeps your 50 most recent digests across all of your subscriptions, oldest out first. Deleting a subscription deletes its digests.
Schedules and time zones
Every subscription picks one IANA time zone, and the cadence is evaluated in it. Two people in different time zones each asking for 09:00 get different instants, each of which is 09:00 local to them — on both sides of a daylight saving change.
Digests arrive within the hour they are due. Digest wakes up hourly and Atlassian spreads those wake-ups across the hour, so a digest due at 09:00 typically appears a few minutes past the hour rather than exactly on it.
Windows tile. A run's window opens at the previous successful run, not at “now minus 24 hours”, so a late run covers the gap instead of dropping it. The look-back is clamped to two nominal periods, so an outage cannot produce a three-month digest.
Who sees what
Scheduled runs have no user context, so digests are generated with the app's own permissions. When you open one, it is re-filtered against your own Jira permissions at that moment: anything you cannot see is stripped and replaced by a count — “N items hidden”, never the items themselves.
The check fails closed. If your access to an issue cannot be confirmed, the entry is treated as hidden rather than shown.
A digest is a stored copy of what a query once saw. Re-filtering at read time means losing access to a project also means losing access to its history in your digests — the copy never outlives the permission.
When something goes wrong
| Situation | Behaviour |
|---|---|
| Jira rejects the JQL, or forbids it | The subscription shows Needs attention and the inbox carries Jira's own error message. Editing the subscription clears the fault and resumes the schedule. |
| The owner's account is deactivated | Their subscriptions move to Disabled and stop running. |
| Rate limits or a Jira outage | Retried with backoff, then deferred to the next hour, up to three times. The window is left untouched, so the next successful run covers the same period and nothing is lost. |
| Nothing changed in the period | Nothing is delivered, and the site's empty periods suppressed counter goes up — silence is recorded, not accidental. |
Limits
| Limit | Value |
|---|---|
| Subscriptions per person | 1 on the free tier, 25 with a paid license. Nothing else is gated — every cadence and grouping is in the free tier. |
| Issues per digest | 50, then “and N more” with a deep link to the issue navigator. |
| @mention detection | Scans the 25 most notable issues in the window — each check reads that issue's comments. |
| Inbox depth | Your 50 most recent digests, oldest evicted first. |
| Empty periods | Not delivered, unless the subscription opts into empty digests. |
| Look-back window | At most two nominal periods, however late the run is. |
Administration
Site administrators get Settings → Apps → Digest for Jira: counters for subscriptions, deliveries and suppressed empty periods, and site-level toggles. Counters only — no queries, no names, no account ids, no issue data. What a person subscribes to is their business.
Permissions the app requests
| Scope | What it is for |
|---|---|
read:jira-work | Run each subscription's JQL, and read changelogs and comments to classify what changed in the window |
read:jira-user | Resolve display names, detect comments that @mention the subscriber, and notice when an owner's account is deactivated |
storage:app | Store subscriptions, digests, the inbox and site counters in Atlassian-hosted app storage |
Every Jira scope is read-only: the app cannot create, edit or transition an issue,
and the install prompt says so. There is no external permission, so
Forge blocks outbound calls at the platform level. See the
privacy policy for what is stored and where.
Data, privacy and licensing
Everything lives in Forge storage inside your own Atlassian tenant: subscription configuration, digest bodies — issue keys, truncated summaries and short change labels, never descriptions or comment text — the inbox, and site-level counters. No email addresses, IP addresses or analytics. Uninstalling the app removes all of it. Full text: privacy policy.
Licensing is handled by Atlassian. One subscription is free forever, with every cadence and every grouping; a paid license raises the limit to 25 subscriptions per person. Sites with 10 users or fewer pay nothing at all.
Not in this release
Digest does one thing: it folds a period of changes into a summary and delivers it in-app, then tells you honestly when there was nothing to say.
- Delivery as a Jira notification — the channel exists in the codebase but is compiled out of this release, because it needs a write scope and 1.0 keeps its install prompt read-only. A later version may ship it; delivery would still be by Atlassian's own notification service.
- Email sent by us — never. There is no external email provider, in this release or any other.
- Filtering, rewriting or intercepting Jira's own notifications
- Slack or Teams delivery
- Saved filters as a subscription source — JQL only for now
- AI-written summaries — a digest lists what changed; it does not paraphrase it
Support
Questions, bug reports and feature requests: keelapps.atlassian.net/helpcenter/support/.
Security issues: report privately, not in a public channel.
Privacy or data requests: use the address on the privacy policy.