Skip to content
TriedDocs
Account

Create dashboard

Create a custom analytics dashboard with saved charts.

POSThttps://api.tried.com.au/dashboards

Creates a dashboard tab on the Analytics page. A workspace can have up to 10 dashboards. The new dashboard goes at the end of the tab order.

Request#

Field Type Required Description
name string Yes 1 to 60 characters.
charts object[] No Up to 24 charts. Default [].
position integer No Tab position, 0 or more.

Each chart:

Field Type Required Description
id string No Chart ID. Default chart_ plus 10 hex characters.
title string Yes 1 to 80 characters.
type string Yes line, bar, pie, number, table, column or donut.
query object Yes A chart query as in Query analytics, without from and to. The dashboard picks the date range when it renders.
layout object No Grid position { x, y, w, h }. x and y are 0 or more; w and h are 1 to 12. Default { "x": 0, "y": 0, "w": 6, "h": 4 }.

On create, position is ignored: the dashboard is placed last.

Example request#

curl -X POST https://api.tried.com.au/dashboards \
  -H "Authorization: Bearer $TRIED_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Inbound overview",
    "charts": [
      {
        "title": "Calls per day",
        "type": "line",
        "query": {
          "metric": "call_count",
          "breakdowns": [
            "agent"
          ]
        }
      }
    ]
  }'
const res = await fetch("https://api.tried.com.au/dashboards", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.TRIED_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "name": "Inbound overview",
    "charts": [
      {
        "title": "Calls per day",
        "type": "line",
        "query": {
          "metric": "call_count",
          "breakdowns": [
            "agent"
          ]
        }
      }
    ]
  }),
});
const dashboard = await res.json();
import os, requests

res = requests.post(
    "https://api.tried.com.au/dashboards",
    headers={"Authorization": f"Bearer {os.environ['TRIED_API_KEY']}"},
    json={
        "name": "Inbound overview",
        "charts": [
            {
                "title": "Calls per day",
                "type": "line",
                "query": {
                    "metric": "call_count",
                    "breakdowns": [
                        "agent",
                    ],
                },
            },
        ],
    },
)
dashboard = res.json()

Response#

201 Created

{
  "dashboard_id": "dash_6e1a9c3f5b7d2e4a8c0f1b3d",
  "name": "Inbound overview",
  "charts": [
    {
      "id": "chart_a1b2c3d4e5",
      "title": "Calls per day",
      "type": "line",
      "query": {
        "metric": "call_count",
        "measurement": "count",
        "breakdown": "none",
        "breakdowns": [
          "agent"
        ],
        "tz": "Australia/Sydney",
        "filters": {
          "agent_ids": [],
          "call_type": [],
          "direction": [],
          "disconnection_reason": [],
          "user_sentiment": [],
          "call_successful": null,
          "fields": []
        },
        "compare_previous": false
      },
      "layout": {
        "x": 0,
        "y": 0,
        "w": 6,
        "h": 4
      }
    }
  ],
  "position": 0,
  "last_modification_timestamp": 1792395000000
}
Field Type Description
dashboard_id string Dashboard ID, prefixed dash_.
charts object[] Stored charts with every query default filled in.
position integer Tab order, starting at 0.
last_modification_timestamp integer Unix ms of the last change.

Errors#

Status When
400 Body validation failed, or the workspace already has 10 dashboards: A workspace can have at most 10 dashboards.
401 Missing or invalid API key.
403 The key's IP allowlist or scopes reject the request. This route needs the analytics scope. Dashboard users with the member role get The member role is read-only.
429 Rate limit exceeded. See Rate limits.

See Errors for the body format.

Retell compatibility#

Retell's public API reference has no analytics endpoints, so this route has no Retell SDK equivalent.