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

# Rival alerts: a rival starts being named where it was not

> When a rival starts showing up in AI answers to one of your prompts, you hear about it in the same hour, with the counts behind it, and one action that answers it: Counter it.

## What a rival alert is

A rival alert says that a rival started being named in AI answers to one of your tracked prompts, on one engine. It reads like this:

> rival.com was named for "best invoicing software for agencies" on ChatGPT on 2 of the last 3 days; it was not named on any of the 7 days before that we read.

It comes from the [detection](https://docs.attensira.com/agent/findings.md) rule **A competitor was newly named**: named on at least two of the last three days, and on none of the earlier days we read that prompt on that engine, with at least three such days. The counts in the sentence are those days. When an answer we read named the rival in a way we can quote honestly, the alert quotes it word for word, with `...` where the excerpt was cut from a longer answer; otherwise it carries no quote rather than a reworded one.

The alert says what the answers did, not why they did it.

## When it arrives

The detection pass runs every hour, and the alert is written in the pass that finds the gain, not in the next morning's brief. It goes out within 24 hours of that pass, and usually within minutes. If it could not be queued, the next pass tries again, counting from the first detection. Quiet hours can hold the email itself past those 24 hours; the alert was still queued in time. An alert that still has not gone out 24 hours after its detection is recorded as late and not sent: the finding is still in your [Inbox](https://docs.attensira.com/agent/inbox.md) and your brief.

Rival alerts are **Attention** emails: the Attention switch and unsubscribe link stop them, and [quiet hours](https://docs.attensira.com/account/notifications.md#quiet-hours) hold them until your window ends. When the workspace sends the Monday note or the win message to Slack, each rival alert is also posted to that Slack channel; a post Slack cannot take is emailed instead. See [Alerts](https://docs.attensira.com/account/alerts.md#where-they-go).

## Noise is held back

A rival named twice in nine answers on a prompt read three times a day may be sampling luck. A gain alerts only once it has been measured and stood up: either the arithmetic alone says it is significant, or the [noise decision](https://docs.attensira.com/agent/findings.md#noise-or-a-real-change) judged it real. A gain held as noise sends no alert and no event. It is measured again an hour later, and alerts then if it holds up.

This holds while the rival already has an open Inbox row from another prompt or engine: the row is bumped, and a new gain on it is still measured on its own terms, so a rival gaining on a second prompt alerts too.

A gain that was filed without that measurement, because no decision could be made, is still a `rival_gained` event for your automations, but it sends no alert. An alert that was already written and could not be queued is retried on the next pass either way.

## One alert per rival, prompt and engine a week

A gain that persists is found again every hour. You are told once: at most one alert per rival, prompt and engine in any seven days. The same rival gaining on another prompt is its own alert.

The same rival gaining on several engines for one prompt on the same day is told **once**: one message per rival, prompt and day, on each channel. A gain on another engine the next day is a new message.

## Counter it

Every alert has one action, **Counter it**. It puts one planned change in your queue to answer the rival on that prompt: a comparison page, or a pitch to a deciding source when pitches have done better on that engine across workspaces and both have enough decided changes to publish. Otherwise it is a comparison page. See [how agents choose](https://docs.attensira.com/measure/playbook-win-rates.md#counter-it).

* You can press it on the alert itself: **Counter it** in the email (it opens a page where you confirm) or in Slack, or reply **counter it** (or **yes**) to the email or in the Slack thread. See [Alerts](https://docs.attensira.com/account/alerts.md#counter-a-rival).
* Pressing it twice, or from two places, files one change. The change is keyed on the alert.
* The change is filed as planned, with the alert's sentence (and quote, when there is one) as its evidence. A page that names a rival is always a claim, so nothing from it is published without a yes, whatever your [approval](https://docs.attensira.com/agent/approval.md) mode.

In the app, the alert email's **See the rival** button opens the prompt's drill-down on the [Scoreboard](https://docs.attensira.com/tracking/scoreboard.md#in-the-app) at `/scoreboard?question=<prompt id>&alert=<id>`, with the alert and **Counter it** on top, above who the answers name instead, engine by engine, and the sources deciding it. If the Scoreboard does not list that prompt, the alert and **Counter it** sit above the board instead. Pressing it shows the change it filed and **Review the change**. Pressing it again, from the same email or anywhere else, shows that same change.

Over the REST API, Counter it is [`POST /v1/alerts/{id}/counter`](https://docs.attensira.com/api/endpoints#post-/v1/alerts/\{id}/counter), or `act` with the ref `attensira://{workspace}/alert/{id}` and `action: counter`, the same act MCP's `act` tool takes. The alert id comes with the [`rival.gained` webhook](https://docs.attensira.com/api/webhooks#events).

## The rival\_gained event

Each gain also becomes a `rival_gained` event that [event automations](https://docs.attensira.com/agent/autopilot.md#event-automations) can react to, one per rival, prompt and engine. It used to be recorded as `prompt_lost`, the same event as dropping out of every answer on an engine. It no longer is: `prompt_lost` now means only that you dropped out, and a rival's gain is `rival_gained`.


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