Save a dashboard
Keeps a page under a name, like the weekly dashboard, and replaces what it shows on each call.
$0.01 a call
From your agent’s balance. A call that fails costs nothing.
An example
Keep a weekly sales dashboard for me and update it every Monday.
Your agent callsview_save$0.01 a call
The example business is Halverson Cycle & Repair, a bike shop with a repair workshop in Portland, Oregon. The reply is the one the tool really gives.
{
"name": "weekly-sales",
"title": "Sales this week",
"subtitle": "Week of October 5",
"blocks": [
{
"type": "metrics",
"items": [
{
"label": "Revenue",
"value": 14620,
"format": "currency",
"currency": "USD",
"change": 12.4
},
{
"label": "Orders",
"value": 41
},
{
"label": "Average order",
"value": 357,
"format": "currency",
"currency": "USD"
}
]
},
{
"type": "chart",
"title": "Orders a day",
"kind": "bar",
"labels": [
"Mon",
"Tue",
"Wed",
"Thu",
"Fri",
"Sat",
"Sun"
],
"series": [
{
"name": "Orders",
"values": [
4,
5,
7,
6,
8,
11,
0
]
}
]
},
{
"type": "bars",
"title": "Best sellers",
"items": [
{
"label": "Full tune-up",
"value": 14
},
{
"label": "Tabor gravel bike",
"value": 5
},
{
"label": "Willamette 8",
"value": 4
}
]
}
]
}Use it when
The same page is shown again and again with fresh numbers.
- For a page shown once, use
view_show.
What it does
Keep a view under a name, like the company's weekly dashboard, and replace what it shows whenever you like (same blocks as view_show). view_link makes one-time links to its latest version.
What comes back
view: its name, title, how many blocks, and when it was made and changed; created: whether it is new. Every reply also carries cost_usd and balance_usd.
Inputs
| Name | Type | What it is |
|---|---|---|
nameRequired | string | The saved view's name, like weekly-sales. 1 to 80 characters. |
titleRequired | string | 1 to 200 characters. |
subtitle | string | A line under the title, like the period it covers. Up to 300 characters. |
blocksRequired | array of objects | blocks is a list, drawn top to bottom. Each block is one of: {"type": "heading", "text"}; {"type": "text", "text"} (blank lines make paragraphs); {"type": "metrics", "items": [{"label", "value", "format", "currency", "change" (percent), "better": "up"|"down", "note", "tone": "good"|"warn"|"bad"}]} (up to 8 numbers in a row); {"type": "chart", "title", "kind": "line"|"bar", "labels": [...], "series": [{"name", "values": [...]}], "format", "currency"} (up to 4 series of up to 400 points); {"type": "bars", "title", "label_header", "value_header", "items": [{"label", "value", "detail", "link", "country" (a two-letter code: shows the flag, and the name when label is left out)}], "format", "currency"} (ranked rows with a bar each, up to 50); {"type": "table", "title", "columns": [{"label", "format", "currency"}], "rows": [[...], ...]} (up to 12 columns and 500 rows); {"type": "list", "title", "items": [{"title", "text", "meta", "link"}]} (up to 100); {"type": "divider"}. format is number, percent (49 means 49%), currency (with currency, like "EUR"), seconds (a length of time), milliseconds or text. bars, table, list and metrics take "width": "half" to sit beside the next half block. 1 to 60 items. |
blocks[].typeRequired | string | One of: heading,text,metrics,chart,bars,table,list,divider. |
The call
Over MCP, call view_save on https://api.conecto.chat/mcp/views. Over REST:
curl -X POST https://api.conecto.chat/v1/tools/view_save \
-H "Authorization: Bearer $CONECTO_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"weekly-sales","title":"Sales this week","subtitle":"Week of October 5","blocks":[{"type":"metrics","items":[{"label":"Revenue","value":14620,"format":"currency","currency":"USD","change":12.4},{"label":"Orders","value":41},{"label":"Average order","value":357,"format":"currency","currency":"USD"}]},{"type":"chart","title":"Orders a day","kind":"bar","labels":["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],"series":[{"name":"Orders","values":[4,5,7,6,8,11,0]}]},{"type":"bars","title":"Best sellers","items":[{"label":"Full tune-up","value":14},{"label":"Tabor gravel bike","value":5},{"label":"Willamette 8","value":4}]}]}'When it refuses
A refused call costs nothing and says what to do next.
| Code | When | What to do |
|---|---|---|
invalid_input400 | The name is not lowercase letters, digits and dashes. | Use a name like weekly-sales. |
invalid_input400 | A block is not in the form this page lists: an unknown type, a chart with a value count that does not match its labels, a table row with the wrong number of cells, or a page over about 300 KB. | Fix the block the message names. |
limit_reached409 | The business keeps 200 saved pages already. | Delete one with view_delete. |
More Views tools
All 7 tools- Show someone a page of results
view_showDraws numbers, charts, bars, tables, lists and text on one page, with a link to it that opens once, for a person to look at.$0.01 a call - Get a link to a saved dashboard
view_linkA one-time link to a saved page as it is now, for one person.Free - Send a saved dashboard
view_send_linkEmails each person, and posts to each channel, their own one-time link to a saved page as it is now.$0.02 per email, $0.005 per channel - List saved dashboards
view_listThe saved pages, most recently changed first.Free* - Read a saved dashboard
view_getA saved page with all its blocks, to change part of it.Free* - Delete a saved dashboard
view_deleteDeletes a saved page; its links stop working.Free
Give this to your agent.
Set up Conecto from https://conecto.chat/SKILL.md