The Power BI feed is enabled per organisation. To turn it on, contact your Wordsmith account manager.
- Reports: one row per document, with one column per report column, typed as numbers, dates, yes/no or text.
- Usage and value: sessions, interactions, active users, hours saved and cost saved, per day or per user, team, agent or skill.
- Tasks: one row per task, and tasks created and completed per day with their average turnaround.
Tasks needs Tasks, and TaskDaily and TaskDailyCoverage also need the Tasks view of Usage and value.
Connect
-
In Wordsmith, create an API key for the user whose view Power BI should load. A key limited to some scopes needs
reports:read,usage:readandtasks:readfor the tables it loads. - In Power BI Desktop, choose Get Data → OData feed.
-
Enter the feed URL for your region:
In the US region, use
https://api.us.wordsmith.ai/api/v1/odata. - When Power BI asks how to connect, choose Basic. Enter any user name, and the API key as the password.
- Pick the tables in the navigator, then Load.
Tables
TaskDaily counts completions from each task’s recorded status history. A task created before Wordsmith recorded that history has none, so its completion is missing from Completed and AverageTurnaroundHours. TaskDailyCoverage gives the period’s UntrackedTasks (tasks with no recorded history) and LateHistoryTasks (tasks whose history starts after the day they were created). When either is above zero, completions are undercounted. Load it with the same period options as TaskDaily.
Hours and cost saved are estimates priced with your organisation’s rates. Organisation figures include your organisation’s calibration, as on the Usage and value dashboard.
Period and scope
The usage tables andTaskDaily cover the last 30 days unless the URL says otherwise. Add options to the feed URL to change it:
The options on the feed URL carry into each table that takes them. For example, to load the whole of 2026:
https://api.wordsmith.ai/api/v1/odata?period=custom&start=2026-01-01&end=2026-12-31.
Organisation figures need permission to view company analytics. Per-user rows need your organisation to show named users on the dashboard.
A report as a table
Each report has its own feed. Copy it from theFeedUrl column of the Reports table, or build it from the report ID:
In
Rows, a column’s name is the report column’s name, with spaces and punctuation replaced by _. A name that is also a filter keyword, such as null or not, gets _2 added. A number column is followed by a _unit column, such as Rent_unit, holding the answer’s unit or currency. Check it before you add amounts together. The Columns table maps each report column to its names in Rows.
A cell in Rows is empty when Wordsmith has not answered it yet, could not answer it, or gave an answer that is not the column’s type. Each row counts these:
PendingCells: cells still being computed.FailedCells: cells that failed.UntypedCells: answers that do not fit the column’s type, such as “not stated” in a date column.
Cells table keeps every answer as text, with its status.
Filters and limits
Power BI sends filters to the feed as$filter, and the feed applies them. A comparison with an empty value follows OData: a row is kept only when the whole filter is true, so not contains(Title,'x') leaves out rows with no Title. A filter that compares values of different types, such as a number column with text, is refused with 400. It supports comparisons (eq, ne, gt, ge, lt, le), and, or, not, and the functions contains, startswith, endswith, tolower, toupper, trim, length, year, month, day and date.
The feed refuses with 501 what it cannot apply, rather than returning rows Power BI would trust as filtered:
- Sorting (
$orderby) and counting ($count). Sort and count in Power BI after the table loads. - Other
$filterfunctions and arithmetic operators. Apply that filter in Power BI after the table loads.
Tasks pages in the same order as the app’s task list. A task whose priority or position changes while Power BI reads the table can be read twice or missed until the next refresh.
Each request counts towards your organisation’s rate limit. Power BI reads a table in pages, so a large report takes one request per page.
If the feed key is in the URL
If you cannot use Basic authentication, add the key to the URL as?api_key= and connect as Anonymous. The key then appears in the URL and in your Power BI file, so prefer Basic.