Skip to main content
A goal is one number Attensira can read, a target for it, and a date: named in 30 of 60 prompts on ChatGPT by 31 December, 2,400 Search Console clicks over 28 days by 31 March. You say what you want in your own words; the agent turns it into a goal you can measure, and you decide whether to create it. After that the readings, the pace and the re-planning are the agents’ job. Every goal is held to three rules:
  • Where it starts is measured, never typed. The baseline is the first successful reading Attensira takes after the goal is created. No person, assistant or model can set it.
  • A number that could not be read is never a 0. The goal reads as unmeasured, with the reason (“Connect Search Console”).
  • A goal reports where a number stands, never why. Our shipped changes appear beside the chart as markers. No goal sentence says a number moved because of our work, and nothing is ever described as won, driven or earned.

Setting a goal from your own words

On Analytics → Goals, type what you want into Add a goal in your own words, for example Double demo requests from search by March, and press Propose a goal. A chat opens in goal mode, and the Chief of staff takes it from there:
  1. It reads the goals you already have, so it does not propose one twice.
  2. It picks the one metric from the catalog that measures what you described, scoped to the assistant, topics or keyword you named. If the words are ambiguous (which event is a demo request, which assistant), it asks first, at most three questions.
  3. It proposes the goal as a card. The card shows the metric, where the number comes from, today’s value with its n (read from the source when the card is drawn, and not stored), the target and date, and the pace line between them.
  4. You press Create goal, or Not now. Nothing exists until you press Create. Accepting the same card twice creates one goal.
If the metric’s source cannot be read in your workspace (Search Console not connected, the AI traffic snippet not installed, Google Analytics or Stripe), the card says why and offers no Create. The Chief of staff offers the nearest metric that can be read, called a signal, and proposes it only if you agree. The same goal mode starts from Propose the next on a goal that was hit or missed. Typing /goal in the chat composer does not start it yet.
The goal chat is a chat like any other and spends credits the same way. Setting a goal, editing it and its daily readings spend none, and they keep working when the credit balance is spent.

Starting goals at signup

During setup, Attensira proposes starting goals from what the first scan found: become visible on each AI assistant you left on, be recommended against the competitors you confirmed, and grow clicks from Google Search once Search Console is connected and Google Search is on. Each has a date 90 days out. You keep or switch off each one. The ones you keep are created when your plan starts, with each target set so it is never below where the goal starts.

The metric catalog

A goal measures exactly one metric from this list. A metric outside it is refused, and so is a parameter the metric does not take: a goal that silently ignored only the pricing topic would read a different number from the one you asked for.
  • platform is one AI assistant your workspace tracks: chatgpt, perplexity, google_ai, claude or gemini. Without it, a share or rate goal reads across every tracked assistant. See Models.
  • topic_ids narrows an AI goal to prompts in those topics, at most 50. Every id must be a topic of this workspace.
  • ga4_channel is organic, ai_referred or all (the default).
  • An AI goal counts the same prompts the Prompts board shows for that assistant, with the same rule for what named means. A prompt whose every read failed is in the whole it counts out of, never counted as a miss.

Business signals

Four metrics are business signals: ai_referred_visits, ga4_key_events, ga4_sessions and stripe_new_customers. They are shown beside our work and never credited to it: a signal’s sentence opens with A business signal:, and nothing in the product turns one into revenue we drove. There is no revenue-in-currency metric.

What each workspace can read today

The catalog is the same for everyone. Whether a metric can be read is per workspace, and the metric picker, the proposal card and the API all say which and why: A goal on a source that cannot be read can still exist (over the API, for example). It reads as unmeasured with that reason every day, and starts measuring the first morning its source can be read.

Targets, dates and limits

A goal’s metric and parameters never change: a different metric is a different goal. You can change its name, target, date and status. A new target must beat the measured baseline.

The first reading and the daily reading

The first reading is queued the moment a goal is created and lands within about 15 minutes. Until then the goal says First reading by 09:15 (the time in your workspace’s zone). Its first reading that succeeds becomes the baseline, the number the goal starts from. If its source cannot be read yet, the baseline waits for the first morning it can. Every morning, from 04:00 on your workspace’s own clock, Attensira reads each active goal once for that day. The readings normally land before the morning goal-pace check at 05:00, and always by 06:00, ahead of the daily win plan. Each goal has at most one reading a day; a repeated or retried read is harmless. A reading is one of: A Google position reading that finds you outside the top 100 is a measured reading (not in the top 100), worse than any position, never unmeasured. Only active goals are read. A goal that is hit, missed, paused or archived is not read until it is active again, so its chart stops at its last reading. Goal readings are part of the monitoring the platform runs, and spend no credits.

Pace: ahead, on pace, behind or unmeasured

Every reading recomputes the goal’s pace from stored readings, with fixed arithmetic. No model decides whether a goal is on pace, and the Goals page, the chip, the morning brief, the board report, MCP and the API all show the same stored verdict.
“Beats” and “trails” follow the metric’s direction: for a Google position, lower is better. The pace line starts at the baseline’s own day when the first good reading came after the goal was set (a source connected weeks later), so a goal never reads as behind for days nothing could measure. The band keeps day-to-day noise from flipping the verdict. It is computed from the newest reading’s sample: A goal is unmeasured when there is nothing honest to compare, and always says why:

The sentence

Each goal carries one sentence, written by the server and shown unchanged everywhere. It is built from counts with their n, places the value against the pace line, and never says why the number moved:
Named in 21 of 60 prompts on ChatGPT (n = 58). 19 expected by today, so on pace for 36 by 30 Nov.
Cited in 14% of AI answers on Perplexity against 10% expected by today (n = 180), so ahead of pace for 20% by 31 Dec.
Search clicks: not measured yet. Connect Search Console.
A share read from a single answer is not a share, and says so: too few answers read to give a share yet (n = 1).

Hit, missed, paused and archived

Hit and missed come only from readings, and stay until you edit the target or the date. When a goal is hit or missed, a row appears in your Inbox: Goal hit: … Propose the next? or … missed its date. Move the date or propose the next? Its button opens a chat with the ask filled in, where the Chief of staff proposes the next goal or a new date for you to accept.

When a goal falls behind

At 05:00 on your workspace’s clock, after the readings, Attensira looks at every active goal whose pace is behind and decides whether the gap is worth re-planning the work:
  • More than 30% of the climb from baseline to target behind, with fewer than 14 days left, always counts.
  • Otherwise the agent weighs the numbers (the gap, the days left, the readings with their n, the work already shipped and waiting for its re-read, the last re-plan) and re-plans only on a confident yes.
What happens next follows your approval mode. In Draft or Act, one re-plan run of the daily win plan starts, named for the goal (Re-plan: … is behind pace), and the goal’s chip reads Behind, re-planning. It is an ordinary run under your approval mode and change caps. In Ask, nothing starts: one Inbox row offers the re-plan (… is behind pace: re-plan the work toward it?). A goal is re-planned at most once a week. A re-plan you cancelled, or an offer you dismissed, is not raised again that week. The check never edits a goal, a target or a setting.

When a source breaks

If a connection the readings use stops answering (Search Console’s grant was revoked), the Inbox gets one Reconnect Search Console row naming the goals waiting on it. It is the same row the connector’s own health check raises, so you see one, not several. The next reading that succeeds closes it. Not connected and not a connector yet are states the goal shows, not failures, and raise nothing.

Where goals show up

  • Analytics → Goals, the first Analytics tab. Each goal is a tile with its current value, target, date, pace chip, sentence and source. Opening one shows its daily readings against the pace line, the days our changes went live as markers, and the controls you steer with: target, date, pause or resume, archive. A day that could not be read stays on the chart with its reason. Edits name the version you were looking at; if the goal changed since you opened it, the sheet reloads it and says so.
  • The Analytics overview: each goal as a chip with its value and target.
  • The Monday morning brief: a status line counting goals by pace, and each goal’s sentence.
  • The board report: each goal’s pace for the period. See client reports.
  • Your Inbox: hit, missed, behind (in Ask mode) and reconnect rows.
  • Your assistant and your code: below.

From your assistant or your own code

The MCP server has the goal tools below, and the REST API has their twins: The writes need write access: a read-and-write API key, or an OAuth connection. They spend no credits and work when the credit balance is spent. Call set_goal only on the person’s instruction.
  • The baseline is not a field. A body carrying baseline is a 400, and so is an edit that tries to change metric or params.
  • Retries. Send an Idempotency-Key header (idempotency_key on set_goal) with a create: a retry answers 200 with the goal the first call set. The same key reused for a goal on a different metric is a 422 carrying that goal.
  • Versions. Without version, an edit applies to the goal as it is now. With one, an edit of a goal that changed since you read it is a 409 carrying the goal as it now stands (details.goal).
  • Limits. Past 12 goals that are not archived, a create is a 409 with {limit}.
Each goal comes back with: A goal set over MCP or the API is recorded as set by your assistant (created_via: "assistant"), on behalf of the key’s person.
set_goal takes name, metric, target, target_date and work_area_id, and nothing else. It sends no params, so a metric that needs one (ai_named_prompts needs platform, google_keyword_position needs keyword_id, ga4_key_events needs ga4_event) is set with POST /v1/goals, or from your own words in the app. Pausing, resuming and archiving (status) and naming a version are REST only.

Webhooks

Every transition sends one goal.updated event: a goal set, edited, paused, resumed or archived, or a reading that moved its pace or status. A daily reading that changes neither sends nothing, and a pace that flips more than once in a local day announces only the first flip. The event carries the pace state, never the numbers behind the band.

What goals do not do yet

  • Google Analytics and Stripe cannot be read. Their metrics are in the catalog so a goal can name them; every such goal reads as unmeasured with the reason.
  • Keyword-scoped Google goals cannot be set yet. A goal that names keyword ids (keyword_id, or keyword_ids) is refused with keyword tracking isn’t set up for this workspace yet. google_keywords_top10 across every tracked keyword can be set.
  • No forecast. The pace line is a straight line from where the goal started to its target. Attensira says where a number stands against it, never where the number will land.