Permissions, data and limits
What the app can access, what it stores, its limits, and what to check when something breaks.
This page is for you when something is not working, and for your security team when they ask what the app can reach.
Limits worth knowing
| Limit | Value |
|---|---|
| Attachment size, per file | 5 MB |
| Attachment size, per conversation | 10 MB |
| Attachments at all | Only when the request type accepts them |
| Knowledge base scope | Only the Confluence spaces you list, and only what the customer can already see |
| Audit retention | 90 days, one row per event, no per-day cap |
| Where AI runs | Forge LLM, inside Atlassian, with Atlassian-hosted models |
| Outbound network access | None. The manifest declares no external address at all. |
Permissions the app requests
Atlassian shows this list when you install. Each item is a scope; the app can do nothing outside it.
| Scope | Why it is needed |
|---|---|
read:servicedesk-request, write:servicedesk-request | List service desks and request types, read which fields each one has, read the customer's requests, and create new ones. |
manage:servicedesk-customer | Identify the portal customer in the conversation. |
read:jira-work, write:jira-work | Read and write the underlying issue, and attach the customer's files to it. |
read:jira-user | Resolve names of users and agents. |
search:confluence, read:space:confluence | Search the knowledge base spaces you listed. |
storage:app | Store conversations, configuration, branding and statistics. The audit log itself is Forge SQL, one row per event. |
report:personal-data | Atlassian's Personal Data Reporting cycle. Once a day the app reports the account IDs it holds — walking both stores, the key-value store and the SQL audit table — and erases what belongs to an account Atlassian reports as closed. |
The app declares no external network access at all — there is no external.fetch block in its manifest, so there is no address anywhere it is permitted to reach. Everything, the AI included, happens inside Atlassian.
What the app stores
- Conversations
- The messages, the status, the desks and spaces the session could search, timestamps and any feedback. Chat text is stored as written, so if a customer types personal data into the chat, it is kept until the conversation is deleted or the app is uninstalled.
- Configuration
- Your instructions at all three levels, knowledge base spaces, branding, and the API token.
- Statistics
- Daily counters of conversations, tickets created and feedback.
- Audit entries
- One row per event in Forge SQL, kept for 90 days: what happened, on which desk and conversation, who acted, and the token usage of each AI call. Filterable and exportable as CSV from the Audit Log tab.
The privacy policy is the full, authoritative list, including exactly what goes into a prompt.
Statistics, and how to read them
AI Portal Chat
••• HelpPick a range with Today, This Week, This Month or Custom. The tab shows three counters and two charts, switchable between Last 12 Weeks and Last 12 Months.
- Conversations
- How many chat sessions happened in the range.
- Tickets created
- How many of those ended in a request being created.
- Feedback
- Thumbs up and thumbs down counts from the end of conversations.
- Charts
- Tickets Created and Conversations per ISO week.
What happens without an active licence
Exactly three things stop, and they are the three that end in a model call: starting a conversation, sending a message and confirming a ticket. Everything else stays open — reading a conversation back, deleting one, leaving feedback on an answer already given, attaching a file to a request that already exists, and the whole admin surface of configuration, branding, the API tab, statistics and the audit log.
The gate is on the resolvers rather than on a trigger, and that is not an implementation detail: a resolver is an endpoint, reachable by anyone with an account on the site without going near the portal, so it is the right place for the check. Nothing is deleted, every conversation already held stays readable, and renewing restores the assistant with no reconfiguration.
Uninstalling
Uninstalling erases what the app holds. A preUninstall handler empties the audit table first, then sweeps the key-value store — conversations, configuration at all three levels, branding, the API token and statistics — repeating until a pass finds nothing left, to a 45-second budget.
Requests the assistant created stay in Jira, because they are ordinary Jira issues. See Where your data goes.
Troubleshooting
- The chat does not appear in the portal
- The desk is not enabled. Open Portal Assistant, select that service desk, and check Enable AI Portal Chat. Also confirm you are looking at the desk you configured.
- Customers see “The assistant is unavailable”
- Two causes look identical from the portal: the desk is not enabled, or the installation has no active licence. Check the desk first, then Atlassian Marketplace. The admin screens give no warning about the licence, so this note in the chat window is the signal — and the customer sees it before you do.
- It never uses the knowledge base
- Three things to check: Enable Knowledge Base Search is on for that desk, the space keys are correct, and the customer can actually open those Confluence pages.
- Attachments are refused
- Either the file is over 5 MB, the conversation total is over 10 MB, or the request type does not accept attachments. The assistant says which.
- It picks the wrong request type
- Add request type instructions that say what each type is for, especially for two types that overlap. This is the same fix as for a confusing portal menu, written once in one place.
- It mentions an outage that is over
- An operational notice with no expiry. Clear it on the project's Agent Instructions page and set Auto-expire next time.
Still stuck? Open a ticket with the service desk name, roughly when the conversation happened, and what you expected.