Skip to main content

What is a prompt?

A prompt is a question a person actually types into an assistant, written the way they would type it. “What’s the best expense tool for a 20-person agency?” is a prompt. “expense tool agency” is a keyword, and no one asks it. Attensira runs each prompt against the model surfaces you track and reads the answer that comes back. The distinction matters because the answer is prose, not a ranked list. A model replies with a paragraph or two naming a handful of products, sometimes with links attached. What Attensira measures from that answer is whether your brand was named (a mention), whether the model attached a URL on your domain (a citation), and which domains it drew on (sources). Keyword-shaped input produces a thin, unnatural answer that tells you nothing about how buyers are actually being advised. In code and in the API, a prompt is a keyword_id. The name is historical; the object is a prompt.
Write prompts in the words your buyers use, not your own category language. If your customers say “invoice chasing” and your site says “accounts receivable automation,” track both and compare.

How do I add prompts?

You paste the questions; the agent files each one under a topic; you confirm or correct it before anything is tracked.
1

Open Add prompt on the Prompts screen

Every prompt belongs to one workspace. A workspace is one brand and one set of prompts, competitors, and model surfaces. The dialog opens with the paste box on one side and the suggestions panel on the other.
2

Paste one question per line

Phrase each as a complete question. Avoid your brand name in the prompt itself unless you specifically want to measure branded questions — an unbranded prompt is the honest test of whether a model reaches for you unprompted.A paste out of a spreadsheet, a document or a chat works as it is: list markers (-, *, •, 1., 2)), wrapping quotes and trailing commas or semicolons come off, and a line repeated in the paste counts once. A line over 500 characters is flagged, and Review waits until it is shortened, because the whole add would otherwise be refused for it.
3

Press Review and read the proposal

Every line is listed with the topic the agent would file it under: one of your topics, or a new one it names. Each topic is a select you can change: another topic, New topic… to start one of your own, or No topic. New topics are named once, above the table, and a rename there reaches every line filed under that topic. A topic name is at most 60 characters.
4

Press Add

The button says how many prompts it adds. New topics are created first, then every prompt is added in one write, each under its topic. Each new prompt takes one slot.
No question in the paste disappears from the review. A line the agent did not place stays in the table with its reason, and you choose a topic for it or leave it without one. The reasons you will see most often: A new topic the agent names that matches one of your topics, ignoring case, is filed under the topic you already have rather than creating a second one with the same name. The agent being unavailable never blocks the add. When it cannot be reached, or your credit balance is at zero, the review opens with “Topic suggestions are unavailable right now. Choose a topic for each line, or add them without one.” Every line starts as Choose a topic, and a line you leave unchosen is added without a topic. A topic that fails to create adds nothing. If one of the new topics is not created, no prompt is added: the review names the topics that were created and the one that failed, and the button becomes Retry, which carries on from the topic that failed without creating the earlier ones twice. Adding from a topic’s own page (Add prompt in the topic’s menu) skips the proposal: every line is filed under that topic. You can also add prompts programmatically with the add_prompts MCP tool. That tool costs credits. See MCP overview.
New prompts do not backfill. A prompt starts producing data from its first scheduled run onward, so the history you see for it begins the day you added it.

When does a prompt actually run?

An hourly ticker picks up scheduled work, but each prompt × model × country combination runs at most once per workspace-local calendar day. Adding a prompt at 09:00 and again pressing save at 11:00 does not get you two readings. The daily ceiling is the unit of measurement. How many readings that day produces depends on sampling depth: n=1 on Starter, n=3 on Growth, Business and Agency, issued concurrently. Deeper sampling is why the same prompt on Growth gives a steadier rate than on Starter — one reading can only ever be 0% or 100%. Runs that fail are stored but excluded from n. A failed run is not a zero; it is an absence, and the metrics exclude it rather than counting it against you.

How do prompt slots work?

A prompt slot is a stock, not a flow. A slot is occupied for as long as a prompt is tracked, and it returns to your pool the moment you remove that prompt. You are not buying a monthly allowance of prompts you can burn through — you are buying how many prompts can be under observation at once. Yearly billing is charged at ten months’ price. There is no Pro plan. So a Starter workspace that adds 50 prompts, removes 10 in March and adds 10 different ones in April is still within its 50 slots. Nothing accumulates and nothing expires.
Removing a prompt frees its slot immediately, but the readings already collected stay subject to your plan’s retention window. Removing a prompt does not delete its history, and re-adding the same text later starts a fresh prompt rather than resuming the old one.

The slots counter

The Prompts screen’s header and the add dialog both show how many slots are in use, for example “142 of 150 prompts on your plan”, and the two always agree: an add moves both at once. A paste larger than the slots you have left is stopped before anything is sent, with how many would fit: “3 of these 10 fit: your plan has 3 prompt slots left. Remove 7 lines or upgrade.” If the plan’s limit is reached between the count and the add, nothing is added and the dialog says how many slots the plan has left. When the count cannot be read, the counter says “Prompt slots unknown” with a Retry, and nothing is refused on a guess; the add itself still checks the limit.

Does Attensira find new prompts for me?

Once a week, it looks for buyer questions you are not tracking yet. Two signals: URLs your competitors get cited on inside your existing readings, and pages AI crawlers (GPTBot, ClaudeBot, PerplexityBot and others) fetched from your site in the last 14 days with no tracked prompt behind them. Page titles and headings are matched against a small set of buyer-question shapes (“best X for Y”, “how do I Z”, “X vs Y”, “top N for Z”), and anything too close to a prompt you already track is dropped. Discovery never adds a tracked prompt on its own. At most 3 candidates a week land as one Inbox row, “Track these questions?”, each with its evidence (the competitor URL, or the crawler hit count and an example URL) and, where known, how many prompt slots your plan has left. Approving adds the prompt the same way you would by hand. Nothing is tracked until you say so.

Where do suggestions come from in the add dialog?

The add dialog has a collapsible Suggestions panel beside the paste box, drawn from real Search Console queries, from the sub-questions assistants work through on prompts you are losing, and, on a new workspace, from a starting guess. Each row shows its volume (Search Console impressions, or “Volume —” when none has been measured, which is not a zero) and the reason it was suggested.
  • Track adds one suggestion at once, under the topic it was suggested for if it has one.
  • Dismiss (the ✕) removes it, and it is not suggested again.
  • Tick several and press Track these to put them in the paste box. They then go through the same topic proposal as anything you typed, and a suggestion is marked tracked only once its prompt is actually added.

What is each prompt filed under?

Every tracked prompt carries a few attributes beside its topic. Every one is optional, and a missing one is shown as —, never as a default: a prompt with no intent is not “informational”. Today you read them through query_evidence over MCP, which can group or filter any metric by intent, stage and persona. The dashboard does not show or edit them yet, so for now the agent’s filing stands and tags cannot be added.

Intent and stage

Intent is what the person asking wants from the answer:
  • informational: to understand something, with no product choice on the table (“how do I close the books at month end”).
  • comparison: to weigh named products against each other, or find alternatives to one (“Xero vs QuickBooks”).
  • commercial: to research what to buy, without a name in mind (“best invoicing tool for freelancers”).
  • transactional: to act on a named product: its price, its plans, a sign-up, a trial.
Stage is where in the buying journey it is asked: awareness (understanding the problem), consideration (looking at kinds of solution and lists of products), decision (choosing between named products) or retention (already a customer: using, connecting, fixing or leaving a product).

Persona

A persona is one of the roles in the Who buys field of your brand profile, one role per line or per semicolon. Only a field someone confirmed counts: a value Attensira drafted from your site is our guess, so no prompt is filed under it. With no confirmed roles, no prompt has a persona. Confirming or changing the roles files your prompts again on the next night, except the ones a person set.

How the agent files them

The agent files a prompt by intent, stage and persona within a minute or two of it being tracked, and a nightly pass picks up anything it missed. Each attribute is one question with a fixed list of allowed answers. An answer the agent is not confident in counts as no answer, and the attribute stays — rather than guessed. If the agent cannot be asked at all, the prompt is left as it was and asked about again on the next pass. A person’s value is final. Once a person sets a prompt’s intent, stage or persona, the agent never files that prompt again, even when its own rules change.

Priority

Priority is how much a prompt is worth working on first: its monthly search volume, weighted by how close its intent is to buying. On a log scale, a transactional prompt counts its whole volume, a commercial one 0.8 of it, a comparison 0.7 and an informational one 0.4. In practice a transactional prompt is high from about 250 searches a month and medium from about 15; an informational prompt needs about 1,000 searches a month to reach medium. Priority is computed every time it is read and never stored, because the search volume behind it is refreshed and a stored priority would outlive the number it came from. It is — whenever the volume or the intent is not known. A measured volume of zero is a real zero and gives low; an unknown volume gives —. Priority is not shown in the dashboard yet, and the prompts board does not carry search volume, so for now every prompt’s priority is —.

Origin

Where the prompt came from, set when it is added and never changed: user for a person adding it (in the dashboard, over the API or over MCP, including add_prompts), search_console for an accepted suggestion from your own Search Console queries, fanout for a sub-question under a tracked prompt, competitor for a question taken from competitors’ answers, discovery for a prompt Attensira proposed and you accepted, seed for a new workspace’s starting set, and agent for a prompt an agent added during a run.

Tags

Tags are yours alone; nothing files them. A tag is stored trimmed and in lower case, so “Q4 Launch” and “q4 launch” are the same tag. A tag is at most 40 characters, and a prompt holds at most 20.

Is a prompt won or lost?

Each prompt has a state across the engines it is read on (won, contested, lost, absent, or — when nothing was measured), and each engine has a cell (named and linked, named, lost, absent, or —). Both are read from the latest successful answers in the window, with fixed thresholds. Prompt state gives the rules.

How do I remove a prompt?

Delete it from the prompts view, or call the remove_prompt MCP tool. The slot is returned as soon as the removal is accepted, so you can add a replacement in the same sitting. remove_prompt is marked as a destructive tool in the MCP schema. An agent holding your key can remove tracked prompts, so treat the key as a workspace-level credential — see Authentication. Remove prompts when the question stopped mattering, when two prompts turned out to be the same question in different words, or when a prompt is producing answers that never mention anyone in your category. Rotate slots deliberately rather than hoarding them: a tracked prompt you never read is a slot doing no work.

Moving or deleting many prompts at once

Tick prompts in the grid and a bar appears above it: “12 selected”, with Move…, Delete… and Clear, and Ask when the selection gives the agent something to work from. One change takes up to 200 prompts; over that, the bar says so before anything is sent.
  • Move… files the selection under one topic, or takes it out of every topic. The readings move with the prompts, and so do the engines each is read on. A prompt without a market of its own takes the market of the topic it lands in. Moving changes topic numbers for past days; see Topics.
  • Delete… lists every selected prompt and asks you to type the count before it runs, so 20 is never deleted when you meant 2. Each deleted prompt frees its slot.
  • Ask hands the selection to the agent as a brief, with the question “What would move the most of these?”
A bulk move or delete is not all-or-nothing. Each prompt is moved or deleted on its own, and the note on the Prompts screen says what happened in those terms: how many landed, how many did not and why, and where the rest still are (“still in their old group”, or “still tracked, with every reading intact”). Retry only what did not land.

Reading the numbers on a prompt

Every rate is reported as a value plus the count it came from, {value, n}. A value of null means not measured — no successful run exists for that window. A value of 0 with n above zero is a real, measured zero: the model was asked and did not name you. Changes over time carry {value, real}. Attensira runs a two-proportion z-test at 95% confidence, and a change that does not clear the noise floor is returned as {real: false, value: null} — “nothing we can prove yet,” which is not the same as no change. Reading the numbers covers all three rules.

Where do you stand on a prompt?

A rate says how often you were named. It does not say who had the answer when you were not. “Named 0% of the time” reads the same whether a rival took every answer or nobody was named at all, and those are different jobs. Standing is the missing word: one state per model, and one for the prompt across its models. Standing is built from the same readings as the rates beside it. It is shown in the dashboard and in the prompts CSV export. The REST API’s prompt analytics and the MCP get_analytics tool return the rates, not the standing. The MCP query_evidence tool can group and filter prompts by standing (state: won, contested, lost, absent or unmeasured) under the same rule, but it does not return the per-model cells.

One model: the cell

Each model a prompt is read on gets one cell. The cell is the state of the latest successful reading on that model in the window you are looking at. A reading is the answers from one day’s run; its n is the answers that came back successfully. Failed answers have no text, so they have no state and are left out of n. “At least half” rather than “at least once”, because a cell is a label on a small sample, and a label one answer in three can flip would move inside the sampling noise. Ties go to you: named in 1 of 2 answers is Named. A competitor counts only when the answer names it in its own words. A competitor whose site is cited as a source but who is not named in the text does not make the cell Lost. The cell shows the latest reading’s standing, while the rate beside it covers the whole window. The two answer different questions: where you stand now, and how often you were named over the period. Hover a cell to see its evidence:
  • Named and linked: “ChatGPT: named and linked to your site in the latest reading (3 answers, last read Sep 29).”
  • Lost: the competitor it was lost to and when it was last read, for example “ChatGPT: lost to rival.com, named instead of you in the latest reading (3 answers, last read Sep 29).”
  • Not measured: the reason, for example “ChatGPT: not measured, not read in this window.” The other reasons are that every read in the window failed (with the commonest failure reason when there is one), that no answers came back, or that this prompt is not read on that model. Reading the numbers lists them.
Absent is a measurement. Not measured is the lack of one. ○ Absent means we read the answers and nobody you track was named. — Not measured means we have nothing to read. A prompt we never managed to read is never shown as absent.

Across models: the prompt’s standing

The Standing column folds the cells into one state for the prompt. Only measured cells count: a model we could not read neither helps nor hurts the prompt, because counting it would turn a gap in our coverage into a claim about your brand. Call the number of measured cells M. For example, a prompt read on four models with cells ●, ◐, ✕ and — has M = 3. It is named on two of the three, which is at least half, and linked on one, so it is Won, and the column adds “lost on 1 of 3”. A measured standing that is lost on any model shows “lost on X of M” under it. That count is what Losses first sorts by.

The prompts grid

Analytics → Prompts → By prompt shows every tracked prompt against every model, one column of cells per model, beside the Standing column and the four core rates (Mentions, Share of voice, Avg position, Citations). The rows also show topic, intent, monthly search volume, a trend, the answers read (n) and a Last change column. A column with no value for a row shows a dash with its reason, for example “Intent is not classified yet.” On this board the Last change column is a dash on every row, with the reason “No shipped change of ours is linked to this prompt on this board yet.”
  • Losses first is the default order: prompts lost on the most models first. Ties go to the prompt with more monthly searches, with unknown volume last, and then to the order the board was loaded in, so a reload never swaps two rows. Any column header sorts too. The first press on a model’s column puts the worst first: ✕, ○, ◐, ●, with — last in either direction.
  • Group by Topic, Intent, Standing or Market. Each group can collapse, and its header shows the number of prompts in it (n = 12 prompts), the count in each standing, worst first (“3 lost · 1 contested · 2 won”), and the group’s pooled rates with the answers behind them. Grouped by standing, the groups run Lost, Absent, Contested, Won, then Not measured.
  • Filter by Standing, Engine (the model), Topic, Intent, Asked from (the country) and Last read. Filters, the sort and the grouping are all in the page URL, so a link you share opens the same cut in the same order.
  • Pinning one model recomputes every row from that model’s cell alone, so the Standing column then answers for that model: ● is Won, ◐ is Contested, ✕ is Lost, ○ is Absent.
  • Wide grids scroll sideways inside the grid, with the prompt column pinned. The page itself never scrolls sideways.
The prompts CSV export carries the cut it was taken under and the same standing. Each row has state and lost_on, and for each model <model>_state (named_linked, named, lost or absent), <model>_state_n, <model>_lost_to and <model>_state_at, beside that model’s share of voice and its _n. An empty state means not measured, which is not absent.

The prompt page

Opening a prompt leads with three sections, in this order:
  1. How to win this answer: the win plan. The next step on the engine with the most answers read, the deciding sources for each engine with their citation share and whether you are on them, and when the answer will be read again (“after the first action lands” when nothing is scheduled). Have Attensira draft it starts a chat that drafts the work for your approval.
  2. Work on this prompt: items in Work whose proposed change targets this prompt, marked when they need your OK.
  3. Before and after: re-read results for this prompt only, each with its before and after samples, their date windows and an outcome (moved, no change, inside the noise, or not enough baseline).
Below them are two answers on the same engine, one from then and one from now. The older one is labelled Before it shipped only when it really predates the change; otherwise it is labelled Then. Each answer is labelled “read once on” and its date, and the page says so plainly: two single answers show changed wording, not movement. The existing readings sit in tabs under those sections: Answers and sources (the default), How it moved, Per engine and Competitors. With one model pinned, the prompts CSV export leaves avg_position, failed_reads and last_read_at empty, because they are not recorded per model, and the file says so in its header. Next: group related prompts with Topics, and choose which surfaces answer them in Models.