Skip to content

Activity is the record of everything that passed through the gateway. If an agent touched one of your systems, a person changed how the workspace is set up, or a request was refused, it is here.

Go to Gateway → Activity. The page requires admin access.

RecordedNot recorded
Every call to a connected tool, reads included, by anyoneReading incidents, alerts and the catalog inside Firefight
Every change to workspace configurationDeclaring, updating and closing incidents from Slack or the dashboard
Every refused request, and every request waiting for approval

Calls that leave Firefight are always recorded, even when they only read, because “what did the agent look at” is the question this page exists to answer. Reading Firefight’s own data is not, since it happens constantly and tells you nothing.

Incident participation by a person is recorded on the incident itself, on its timeline, where it belongs next to what happened. See Incident concepts.

Each row is one request, newest first, showing the most recent 200.

ColumnWhat it tells you
WhenWhen the request was made
PrincipalWho made it, by name. A person, an API key or an agent shows its own name, and Firefight’s own investigator shows as Halon. A change Halon made in someone’s chat shows as Halon with whose access it used, such as Halon, for Maya Ortiz
SourceWhere it came from, listed below
ActionWhat was asked for, by the ability’s key. A call to a connected tool also names the connection it went through, such as Faylee (Northflank)
Decisionallow, deny, or pending
OutcomeWhether an allowed action succeeded, failed or was refused by one of Firefight’s own rules, with the reason when it did not succeed
DurationHow long the action took to run

Source is one of these:

SourceWhat made the request
DashboardA person on the dashboard
SlackA person in Slack
APIA call to the API with a personal token or a service key
MCPAn AI agent connected over MCP
InvestigationHalon, during an investigation, acting as Firefight’s own Halon agent
Halon chatHalon, answering in a chat in the dashboard, in Slack or over MCP, acting as the person who asked
Coding agentThe coding agent writing a fix’s code change, reading your connected tools as the person who asked for it, or searching the web
Map sweepFirefight map sweep, reading a connection onto the resource map
Health checkFirefight health check, making sure a connection reaches its account
Issue syncFirefight issue sync, keeping an action or follow-up and its issue in step, see Issue tracking
Halon watchHalon checking on a run, build or deploy it was asked to watch, acting as the person who asked, see Halon watching for you
Handbook syncFirefight handbook sync, reading the documents your handbook’s synced pages come from
PagingFirefight paging, raising a page in your on-call tool and keeping it in step with its incident, see Halon on call
WorkflowA step of a workflow, acting as the workflow’s own identity

Decision is the gateway’s answer. deny means the principal did not hold the permission and nothing ran. pending means the request is waiting for approval, and a second row appears when it is decided and runs. See Approvals.

Outcome is what happened after an allow, one of success, error or refused. A call that reached the tool and got an error back from it shows as error, with the first line of what the tool said, cut to 200 characters. A call that one of Firefight’s own rules stopped, such as a push to a protected branch or a change to a path Halon may not change, shows as refused with the first line of the rule’s reason, whether Halon or an agent over MCP made it. Other calls Firefight itself refused to carry out show as error. Any credential in that line is replaced before it is recorded. An allowed row that shows unknown has not finished, either because it is still running or because it never reported back.

A change Halon made in a chat without asking the person says why under its action, such as “Made without asking because it is a safe change.” or the entry of what Halon may do without asking that allowed it. See Changes without asking.

Use the filter at the top right to show only one decision. Filtering to deny is the quickest way to see what an agent tried and could not do, and filtering to pending shows what is waiting.

When you have two accounts of one tool connected, the connection beside each action tells you which account a call reached.

Look here when an agent did something unexpected, when you are checking what a new integration has been used for, or when someone asks who changed a routing rule. The principal and source columns answer who and how, and the action and outcome columns answer what.

An agent’s own calls appear here like everyone else’s, under its own name. The same log is available at /activity over the API and through the search_activity MCP tool, to an admin’s personal token. Each row there carries principal_name, the name the Principal column shows, beside principal, which keeps the kind and name together, such as user:Dana Lee. In search_activity, a call to a connected tool also carries the connection’s name and its provider. See Connect AI agents.