Update a saved AI review
update_reviewUpdate a saved AI review in place after the user's feedback, however far it takes the review, instead of saving another (save a new one only when the user asks for a separate one). Read it with get_review first, then give the whole review as it should now be: save_review's arguments plus review_id; nothing of the old one is kept unless given again. Give each recommendation that stays its id: it keeps its status. from and to are required. Changing the scope, page, funnel, key action or period counts toward the plan's reviews per month; text, evidence or recommendations alone do not. Call it with dry_run true first (counts_as_review says whether it counts) and fix every problem it lists. A placeholder is shown with its own unit and sign, so never write a unit (%, s, seconds, points) or a + sign right before or after one. Pass run_id from start_setup_run so this undoes together with the rest of the setup; leave it out (never "") to start a new chat run, whose run_id is returned and should go on every later change.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"review_id": "<review_id>",
"title": "<title>",
"short_answer": "<short_answer>",
"confidence": "<confidence>",
"confidence_reason": "<confidence_reason>",
"recommendations": "<recommendations>",
"method": "<method>"
},
"name": "update_review"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Last day the review is about, YYYY-MM-DD, not after today, at most 92 days after from. Default: yesterday, the last complete day. | |
| from | No | First day the review is about, YYYY-MM-DD in the project's timezone; the same as for get_review_data. Default: 27 days before 'to'. | |
| scope | No | site (the whole project), page (one page: page_origin and page_path) or flow (one funnel's flow: funnel_id). Left out: page when page_origin or page_path is given, flow with funnel_id, otherwise site. | |
| title | Yes | A short title, plain text (no placeholders), at most 200 bytes, e.g. Home page review. | |
| method | Yes | How the review was made. | |
| run_id | No | The setup run this review belongs to, from start_setup_run or an earlier write. Omit to start a new chat run (its id is returned). Not used by a dry run. | |
| checked | No | What else was checked and not chosen, up to 12 rows, each with a real reason. | |
| dry_run | No | true: check everything, build the review data, fetch every piece of evidence and return the review as it would be stored, every placeholder filled in; nothing is saved or counted. Do this first, fix every problem it lists, then call again without it. | |
| project | No | Project ID, from list_projects. Required when this connection covers more than one project; may be left out when it covers one (and with an API key, which belongs to one project). | |
| evidence | No | Up to 20 pieces of evidence: the API's own reads for numbers the review data does not hold (a comparison with the period before, a page or feature outside the sections, a query of your own). The API fetches each one itself when the review is saved and keeps its numbers, which {{eN.field}} placeholders name. Any text may name any of them. A number of the review data needs none: write {{d[REF].field}}. | |
| funnel_id | No | Scope flow: the funnel's id, from list_funnels. | |
| page_path | No | Scope page: the page's path, exactly as list_pages gives it (e.g. /pricing, or /products/:id rather than one product's URL). It needs page views in the period. | |
| review_id | Yes | The saved review to update, from list_reviews or get_review. | |
| confidence | Yes | How sure the review is: low, medium or high. | |
| stands_out | No | What stands out: 1 to 6 items, ranked by how unusual each is and how many visits it affects. With a key action it may be left out when explanations are given. | |
| page_origin | No | Scope page: the page's origin, exactly as list_pages gives it (e.g. https://shop.example.com). | |
| explanations | No | With a key action only: up to 5 competing explanations of what the numbers show, each with what it would predict, what is observed and the verdict. Instead of or beside stands_out. | |
| goal_feature | No | Optional key action to judge against: a feature name, exactly and case-sensitively as list_features or list_feature_rules gives it. Adds key action clicks per page and the goal_gap check. Not together with goal_funnel_id. | |
| short_answer | Yes | The short answer: 2 to 5 bullets of at most 600 bytes, the answer first, then what to do next. Measured numbers as placeholders: {{d[REF].field}} for the review data, {{e1.views}} for evidence. | |
| goal_funnel_id | No | Optional key action to judge against: a funnel's id, from list_funnels (a goal, is_goal true, is the natural one); adds its funnel_steps to a site or page review. Not for scope flow, whose funnel is its key action already; not together with goal_feature. | |
| recommendations | Yes | 1 to 3 recommendations, in the order to do them; the first is the one to do first. | |
| confidence_reason | Yes | Why, in one line of plain text (no placeholders), at most 300 bytes, e.g. Medium that the gap is real, low on its cause; about 8 people a day see this page. |