> ## Documentation Index
> Fetch the complete documentation index at: https://modem.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Sentry

> Ingest user feedback; query and act on Sentry issues

export const Prompt = ({text, variant = 'accent'}) => {
  const [copied, setCopied] = useState(false);
  const handleCopy = async () => {
    try {
      await navigator.clipboard.writeText(text);
      setCopied(true);
      setTimeout(() => setCopied(false), 2000);
    } catch {}
  };
  const clipboardIcon = <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
            <title>Copy</title>
            <rect x="9" y="9" width="13" height="13" rx="2" ry="2" />
            <path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" />
        </svg>;
  const checkIcon = <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
            <title>Copied</title>
            <polyline points="20 6 9 17 4 12" />
        </svg>;
  const promptIcon = <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style={{
    flexShrink: 0,
    opacity: 0.4
  }}>
            <title>Prompt</title>
            <path d="M20 2H2v20h2V4h16v12H6v2H4v2h2v-2h16V2zM6 7h12v2H6zm8 4H6v2h8z" />
        </svg>;
  return <div className={`prompt prompt-${variant}`} style={{
    marginTop: '12px',
    marginBottom: '12px'
  }}>
            {promptIcon}
            <span className="prompt-text">{text}</span>
            <button className="prompt-copy" onClick={handleCopy} title="Copy to clipboard" type="button">
                {copied ? checkIcon : clipboardIcon}
            </button>
        </div>;
};

The Sentry integration connects your Sentry organization to Modem. It ingests **user feedback** into conversations and [topics](/docs/guides/topics), and it gives the [Modem Agent](/docs/features/agent) live access to your errors: search issues, read stack traces and sample events, and (with your approval) resolve, assign, or reprioritize them.

<Info>
  Sentry **errors and issues are not ingested**. The agent queries them live when you ask. Only **user feedback** submitted through Sentry
  is stored in Modem. See [What Gets Captured](#what-gets-captured).
</Info>

## How it works

Modem connects to Sentry as a published **Sentry Integration Platform app**, installed once for your Sentry organization. A Sentry admin approves the installation, and installing the app is also what grants Modem access. There is no separate authorization step.

Modem stores the installation's access token encrypted and refreshes it automatically in the background, so the connection normally stays authenticated without any action from you. Each Modem organization connects to one Sentry organization.

When you ask the agent about Sentry, it calls Sentry's REST API with that connection's credentials, scoped to the connected Sentry organization only.

## What Gets Captured

Only **user feedback** submitted through Sentry is ingested into Modem. Each report becomes a conversation that can group into [topics](/docs/guides/topics).

Sentry **errors and issues stay in Sentry**. They do not appear on the Topics page. When you ask about them, the agent queries Sentry live and the result stays in that chat.

## Prerequisites

* **Owner or admin** role in your Modem organization, to connect and manage the integration
* A **Sentry admin** to approve the app installation in your Sentry organization

## Setup

<Steps>
  <Step title="Start the connection">
    Go to **Settings** → **Integrations** → **Sentry** in your Modem dashboard and click **Connect**. Only organization owners and
    admins can connect.
  </Step>

  <Step title="Approve the installation in Sentry">
    You'll be redirected to Sentry's install page for the Modem app. A Sentry admin approves the installation there, which also grants
    Modem access in the same action.
  </Step>

  <Step title="Confirm the connection">
    Sentry redirects you back to Modem automatically once the app finishes installing. The settings page shows the connected Sentry
    organization.
  </Step>

  <Step title="Ask the agent">
    Ask the Modem Agent about your errors from the web dashboard, Slack, or anywhere else you talk to it. See [Working with Sentry
    Data](#working-with-sentry-data) below.
  </Step>
</Steps>

## Working with Sentry Data

Once connected, the agent can reach Sentry's REST API on your behalf. Common things to ask for:

* **Search issues**: unresolved errors, new regressions, issues on a specific release or environment, the noisiest unassigned issues
* **Dig into one issue**: title, culprit, event and affected-user counts, stack traces and breadcrumbs from sample events
* **Review user feedback**: reports submitted through Sentry's user feedback feature
* **Size a problem**: how many events and users an issue touched, and over what window

<Prompt text="What's erroring in Sentry today?" />

<Prompt text="Summarize the noisiest unresolved Sentry issues from the last 24 hours" />

<Prompt text="Any user feedback submitted through Sentry this week?" />

### Taking action

The agent can also change things in Sentry: resolve or ignore an issue, assign it to a person or team, or set its priority. In the web dashboard and in Slack, every write requires your explicit approval first. The agent shows you exactly what will change and waits for you to confirm before it calls Sentry. Read-only queries never require approval.

Automations, Discord and Microsoft Teams conversations, and agent runs started through the [Modem MCP Server](/docs/api/modem-mcp-server) have no approval step, so the agent makes writes there without asking. In a web chat, the lock button in the message box turns approvals off for that conversation.

<Prompt text="Mark the checkout TypeError issue resolved, we shipped the fix" />

<Prompt text="Assign the top three unresolved payment errors to the payments team" />

## Permissions

Modem accesses:

* Issues and error events
* User feedback items
* Project metadata

Modem does not access:

* Source code
* Organization billing information
* Sentry account credentials

Everything the agent reads is scoped to the single Sentry organization the app was installed in.

## Troubleshooting

<AccordionGroup>
  <Accordion title="The installation was rejected in Sentry">
    The person approving the installation needs admin rights in your Sentry organization. Ask a Sentry admin to complete the install
    step.
  </Accordion>

  <Accordion title="The agent says Sentry is not connected">
    Either Sentry was never connected for your organization, or the installation was removed on the Sentry side and the stored token was
    revoked. Reconnect from **Settings** → **Integrations** → **Sentry**.
  </Accordion>

  <Accordion title="The agent gets a permission error on a write">
    A 403 from Sentry means the installation's scopes don't cover that change. Reads keep working. If your team needs a write the app
    can't perform, contact [support@modem.dev](mailto:support@modem.dev).
  </Accordion>

  <Accordion title="Sentry issues aren't showing up in Topics">
    That's expected: only **user feedback** is ingested into Modem's conversations and topics. Sentry errors and issues are not, so ask
    the agent about them directly instead. If feedback submitted after you connected Sentry isn't appearing either, contact
    [support@modem.dev](mailto:support@modem.dev).
  </Accordion>
</AccordionGroup>

## Disconnecting

To disconnect Sentry:

1. Go to **Settings** → **Integrations** → **Sentry**
2. Click **Disconnect** and confirm

Disconnecting retires Modem's connection to your Sentry organization. Modem stops using and refreshing the stored installation token, which expires within 8 hours. The agent can no longer query or change Sentry. To also revoke Modem's access on the Sentry side, uninstall the Modem app from your Sentry organization's integration settings.

User feedback already ingested into conversations and topics stays in Modem. Sentry errors and issues were never stored here, so disconnecting only stops live lookups. Historical data remains in Modem after disconnecting. Nothing is changed in Sentry itself.

## Related

<CardGroup cols={2}>
  <Card title="The Modem Agent" icon="https://mintcdn.com/modem-844d7a4a/Wr2r4IRr97lNQiQb/icons/bot.svg?fit=max&auto=format&n=Wr2r4IRr97lNQiQb&q=85&s=2496f9106cb54fa9f4e27ad1f8f3a171" href="/docs/features/agent" width="22" height="22" data-path="icons/bot.svg">
    Query and act on your data, including your connected Sentry organization.
  </Card>

  <Card title="Topics" icon="https://mintcdn.com/modem-844d7a4a/Wr2r4IRr97lNQiQb/icons/label-alt-multiple.svg?fit=max&auto=format&n=Wr2r4IRr97lNQiQb&q=85&s=e7fbaf23c28396ac670b89cf38e1e4a6" href="/docs/guides/topics" width="24" height="24" data-path="icons/label-alt-multiple.svg">
    See how ingested Sentry user feedback is grouped into themes.
  </Card>

  <Card title="GitHub" icon="https://mintcdn.com/modem-844d7a4a/Wr2r4IRr97lNQiQb/icons/github.svg?fit=max&auto=format&n=Wr2r4IRr97lNQiQb&q=85&s=1241c26b449c582e802cf990e2f41703" href="/docs/integrations/github" width="24" height="24" data-path="icons/github.svg">
    Sync issues and pull requests for shipping context alongside your errors.
  </Card>

  <Card title="All Integrations" icon="https://mintcdn.com/modem-844d7a4a/Wr2r4IRr97lNQiQb/icons/link.svg?fit=max&auto=format&n=Wr2r4IRr97lNQiQb&q=85&s=e774d33588635d44c6c935b78ed55f13" href="/docs/integrations/overview" width="24" height="24" data-path="icons/link.svg">
    Browse every data source and agent tool.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.