---
title: "AI data handling"
description: "What conversation data Firefight stores for AI features, what is redacted before storage, and what is sent to AI models."
canonical: https://firefight.app/docs/ai/data-handling/
---

# AI data handling

AI features run on data, so it matters exactly what data that is. This page describes what Firefight stores from your incident channels, the secret redaction that happens before anything is saved, and what leaves Firefight when a model is called. It claims no more than the product does.

## What is stored

To power summaries, catch-ups, and postmortems, Firefight keeps a transcript of each incident channel.

- Messages posted by people in an incident channel, including thread replies, with the author, the timestamp, and the thread structure
- Not messages posted by bots or apps, which are excluded from the transcript
- Only incident channels. Firefight does not record conversation from other channels in your workspace

Message content is encrypted at rest. When someone edits a message in Slack, the stored copy is updated to match. When someone deletes a message, the stored copy is marked deleted and excluded from every AI feature from that point on.

## Secrets are redacted before storage

Every message is scanned for known credential formats before it is saved. Matches are replaced with a redaction placeholder that names the credential type, and this happens before persistence, so the unredacted secret is never written to the transcript and can never appear in a prompt. Edited messages are scanned again on the way in.

The scan covers these formats.

| Category | Redacted formats |
|---|---|
| Cloud and infrastructure | AWS access key IDs, Google API keys, DigitalOcean tokens |
| Code and packages | GitHub tokens, npm tokens |
| AI providers | OpenAI API keys, Anthropic API keys, Hugging Face tokens |
| Payments and messaging | Stripe API keys, Stripe webhook secrets, Twilio keys, SendGrid keys, Mailgun keys |
| Monitoring and chat | New Relic keys, Slack tokens |
| General | JSON Web Tokens, PEM private key blocks |

:::note
Redaction is pattern-based and covers known token formats. It is not a general secrets or PII scanner, and a plain-text password or an unrecognized token format will not be caught. Treat incident channels as you would any shared channel and keep credentials in your secrets manager.
:::

## What is sent to AI models

Each feature sends only what it needs.

| Feature | Sent to the model |
|---|---|
| Live summary | The incident's identifier and name, plus transcript messages. After the first run, only the prior summary and the messages that changed |
| Catch-up and responder questions | Incident details, timeline events, the narrative summary, and actions and follow-ups |
| Thread questions | The messages of that one thread |
| Postmortem generation | Incident details, custom field values, timeline events, the narrative summary, actions and follow-ups, and shoutouts |
| Postmortem section rewrite | The incident context above, the passage you selected, and your instruction |

Transcript content in every case is the stored, already-redacted version. Firefight is model-agnostic, and which provider and model serve these calls is set by your deployment's configuration.

## Every call is recorded

Firefight records a usage entry for every AI call, capturing the feature, provider, model, token counts, cost, latency, and outcome, along with who or what triggered it. The usage record holds metadata only, not the prompt or the response text.

For what each feature does with this data, see [AI in Firefight](https://firefight.app/docs/ai/overview.md).
