List daily metrics
well_list_daily_metricsRead the daily figures a connected source reported: ad spend, impressions and clicks per campaign, ad set or ad; visits (sessions) and page views per landing page; impressions, clicks and the sum of positions per search query; item views and units purchased per product. Pass one grain_kind and a day range; each row is one metric value of one subject on one day, newest day first.
Never add values of two grains, and never add a metric across its own rows unless the catalog calls it additive: url_sessions is a denominator (one session sees many URLs). Averages and ratios are not stored: compute an average position as the sum of search_sum_position divided by the sum of search_impressions, a click rate as clicks divided by impressions. device, country and traffic_channel are null on a row that is not split by them: do not add a null-split row to the split rows of the same subject and day, or the day counts twice. ad_conversions_provider_claimed, ad_sales_value_provider_claimed, key_events_provider_claimed and items_purchased are what the source claims, never revenue: revenue comes from the store's own orders. A money value carries its currency; never add two currencies.
Each source in sources gives synced_at, its last successful sync, and fresh_enough, true when that sync is within the last 24 hours. When a source is not fresh enough, say its figures may be old, and offer well_request_sync with its source_workspace_connector_id. has_more is true when the page is full: narrow the range or the metrics, or say the list is cut, before you state a total.
When the token authorizes one workspace, call this directly — no workspace call is needed first. When it authorizes several, this read will not guess which one you mean: pass workspace_id on the call.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Rows to return, at most 500. Default 200. | |
| metrics | No | Only these metric codes, each of the chosen grain. Every metric of the grain when absent. | |
| to_date | Yes | The last day; at most 400 days after from_date, as YYYY-MM-DD, included. | |
| from_date | Yes | The first day, as YYYY-MM-DD, included. | |
| grain_kind | Yes | Which figures to read: project_day (campaigns, ad sets, ads), page_day (web pages), query_day (search queries) or product_day (products). One grain per call: never add figures of two grains. | |
| product_id | No | On product_day: only this product, from well_list_products. | |
| project_id | No | On project_day: only this campaign, ad set or ad, from well_list_projects. | |
| workspace_id | No | Target workspace. Omit when the token authorizes one workspace. Required when it authorizes several: this read reports one workspace's own figures and will not choose which. | |
| conversation_id | No | The conversation id returned by the previous Well result, in its meta under well/conversation_id, in its structuredContent, or in its JSON text block. Pass it back on every call in the same conversation, including a call a card makes, so the chosen workspace and the earlier answers still apply. It decides the conversation on its own: nothing the host states about the session replaces it. Omit it only on the first call of a conversation. | |
| workspace_scope | No | Restrict this call to the family: the token's primary workspace plus the company workspaces under it that you are a member of. Unrelated authorized workspaces drop out of the read; row reads merge across the family, while a per-workspace figure still reports exactly one workspace. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| rows | No | ||
| error | No | ||
| sources | No | ||
| success | Yes | ||
| has_more | No | ||
| conversation_id | No | The conversation this result belongs to. Pass it back as the conversation_id argument on every later Well call in the same conversation. | |
| newly_connected | No | Tools that connected to this workspace since the last result and that no session was told about yet, oldest first. Present only when at least one tool is new. The connected-line rule says when to tell an entry; when it does, one line per entry, in the person's language: "<name> is connected.". Never fold several entries into one sentence. Each entry comes back once, on one result only: never repeat its line later. | |
| resolved_workspace | No | The workspace that answered, when the caller named none and the token authorizes several. | |
| conversation_id_note | No | Present only when the server opened a fresh lane, stating that no choice recorded earlier was read. | |
| conversation_id_source | No | Where the conversation id came from: the host's own request meta, the caller's argument, or a fresh lane the server opened. |