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

Showing a board in SharePoint or Teams works on every plan, including Free. Syncing scores automatically uses the developer API, which is on Pro and Premium.

Show a board on a SharePoint page

1

Copy the embed code

In the board editor, click Share, open Add to website, and click Copy.
2

Add an Embed web part

Edit your SharePoint page, click + where you want the board, and choose Embed. Paste the code into the web part's Website address or embed code box.
3

Publish the page

The board appears right away and updates live as scores change. No refresh needed, so it works on a lobby screen too.

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”?

SharePoint only embeds sites on the site's allow list. A site owner can add it under Site settings → HTML Field Security: add maketheboard.com and save. If you don't own the site, send that line to whoever does.

Add a board as a Teams tab

1

Copy the embed address

In the board editor, click Share, open Add to website, and copy just the address inside the code: https://maketheboard.com/embed/your-board-slug. Use this one, not the public /b/ link, which Teams won't load inside a tab.
2

Add a Website tab

In the Teams channel, click + at the top to add a tab, pick Website, give it a name like “Leaderboard”, and paste the address.
3

Save

Everyone in the channel now has the board one click away, and it updates live. If your organization blocks the Website tab, embed the board on a SharePoint page (above) and add that page as a tab instead.

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.

1

Get your board's API address

In the board editor, open Share → Editing access and copy the Developer API address (it ends in your board's token; treat it like a password). If editing access is off, click Create a management link first.
2

Create the flow

In Power Automate, create an Automated cloud flow with the SharePoint trigger When an item is created or modified, pointed at your site and list.
3

Add an HTTP action

Add the HTTP action and fill it in as below. Replace <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

The HTTP action is a premium connector in Power Automate. Many business Microsoft 365 plans include it; if yours doesn't, your admin will see it marked as premium when you add it.

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.

1

Start on a schedule

Create a Scheduled cloud flow (every 15 minutes is plenty for most boards).
2

Read the table

Add Excel Online (Business) → List rows present in a table and point it at your workbook and table.
3

Shape the rows

Add a Select action over the rows, mapping participant to Name and score to Score.
4

Send them

Add the HTTP action: 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


Set it up

Open Share on any board for the embed code and, under Editing access, the API address.

Go to your boards