Leaderboards in SharePoint & Microsoft Teams
Show a live board on your SharePoint intranet or in a Teams channel, and keep the scores in sync with a SharePoint list or an Excel table. No IT approval or app install needed.
What each part needs
Show a board on a SharePoint page
Copy the embed code
Add an Embed web part
Publish the page
The code you paste looks like this:
<iframe src="https://maketheboard.com/embed/your-board-slug" width="100%" height="600" style="border:0;"></iframe>
“Embedding content from this website isn't allowed”?
maketheboard.com and save. If you don't own the site, send that line to whoever does.Add a board as a Teams tab
Copy the embed address
https://maketheboard.com/embed/your-board-slug. Use this one, not the public /b/ link, which Teams won't load inside a tab.Add a Website tab
Save
Sync scores from a SharePoint list
Keep a SharePoint list with one row per person or team (a Title column for the name and a number column called Score) and a Power Automate flow copies each change to the board. Names are matched case-insensitively to the people already on the board. The flow never adds new people, so add them on the board first.
Get your board's API address
Create the flow
Add an HTTP action
<admin_token> with your token, and pick Title and Score from the dynamic content list in place of the two placeholders.Method: POST
URI: https://maketheboard.com/api/v1/<admin_token>/scores
Headers: Content-Type application/json
Body:
{
"participant": "[Title]",
"score": [Score]
}Change "score" to "delta" if your list records points to add rather than a running total.
Power Automate licensing
Sync scores from an Excel table
For a workbook in OneDrive or SharePoint, format the data as a table with Name and Score columns, then run a flow on a schedule that sends the whole table in one call.
Start on a schedule
Read the table
Shape the rows
participant to Name and score to Score.Send them
POST to the same /scores address, with this body (pick the Select action's Output for the placeholder):{
"scores": [Output of Select]
}One call updates every row. Rows whose name isn't on the board come back in the response's errors list instead of being created, so a typo in the sheet never adds a stray person.
Good to know
- The API accepts up to 120 calls a minute per board, far more than a list or scheduled flow will send.
- Updates from a flow show up live on the board, its embed, the Teams tab, and the TV display.
- Full request and response details are in the API reference. For the embed snippet and sizing tips, see Embed on your site.
- Weighing a sorted list view or Power BI instead? See the three ways to build a SharePoint leaderboard.
API reference
Every endpoint, request and response
Embed on your site
The snippet, sizing and troubleshooting
Set it up
Open Share on any board for the embed code and, under Editing access, the API address.
Go to your boards