Articles in this section

[Admin Guide] Setting up the Microsoft Teams Integration

Setting up Teams takes 3 steps across 2 systems. You, a Spekit Account Admin, generate a connect link. Your Microsoft admin approves it, then finishes 2 settings on the Microsoft side. Plan for all of you to be free at the same time, because the link expires after 30 minutes.

ℹ️ Before you start: in the Spekit Hub (Web App), go to Settings, then Connect. If there is no Microsoft Teams card in the Integrations section, Teams meetings is not turned on for your account yet. Submit a request and Spekit Support will turn it on.

💡 Pro Tip: sections 3, 5, and 6 are done by your Microsoft admin, not by you. Send them this article and point them at those sections.

 

1. What you need before you start

Five things have to be true before you start. The Microsoft roles matter most, because the wrong role cannot approve the connection and you will not find out until the last screen.

You need Details
Account Admin rights in Spekit Only Account Admins can connect Microsoft Teams. Team Admins, Experts, and Viewers cannot
A Microsoft Global Administrator or Privileged Role Administrator They approve Spekit's access in section 3. Cloud Application Administrator and Application Administrator are not enough
A Teams Administrator They do sections 5 and 6. A Global Administrator can also do section 5
Your Microsoft Tenant ID Your Microsoft admin finds it in the Microsoft Entra admin center, under Entra ID > Overview > Properties
30 minutes together The link expires after 30 minutes

At many companies the 2 Microsoft roles are the same person. Spekit's production Teams app ID is 0df52125-4f1b-4177-b16a-125310d5451e. Your Microsoft admin needs it in section 5.

 

2. Generate the connect link

You do this part. It takes about a minute.

  1. In the Spekit Hub (Web App), go to Settings, then Connect.
  2. In the Integrations section, find the Microsoft Teams card. It shows a Not connected badge.
  3. Select Generate a new link for your Microsoft admin.
  4. The link appears on the card with Copy and Open buttons, and a line telling you what time it expires.
  5. Select Copy and send the link to your Microsoft admin.

Once a link exists, the button changes to Generate a new link. You can generate as many as you need.

💡 Pro Tip: Send the link while your Microsoft admin is already on a call or a chat with you. If 30 minutes pass, just generate a new one. There is no limit on how many you can generate.

 

3. Approve Spekit's access

Your Microsoft admin does this part. They need to be a Global Administrator or a Privileged Role Administrator.

  1. Open the connect link your Spekit admin sent you. It expires 30 minutes after it is generated. You will see a screen called Link Microsoft (Admin) Account.
  2. Enter your Tenant ID. Sign in to the Microsoft Entra admin center, then go to Entra ID > Overview > Properties and copy the Tenant ID. It is a long string of letters and numbers. You need at least the Global Reader role to see it. Microsoft's own instructions: How to find your Microsoft Entra tenant ID.
  1. Select Connect. Microsoft opens a Pick an account window. Sign in with your admin account, then approve the consent screen. The app appears as Spekit Meetings.

 

Microsoft asks for 4 read-only permissions: meeting transcripts, meeting details, the user list, and attendance reports. Spekit does not ask for calendar access.

ℹ️ Note: If you see Need admin approval instead of the consent screen, the account you signed in with does not have one of the 2 roles above. Select Have an admin account? Sign in with that account and sign in again with a Global Administrator or Privileged Role Administrator account. Nothing is broken, and the connect link still works.

 

4. Confirm the connection

Back in Spekit, check that the connection went through before anyone moves on.

  1. Go back to the Microsoft Teams card in Spekit.
  2. Select Refresh status.
  3. The card should say Connected, and show Connected by your Microsoft admin's name.

The card shows 1 of 4 statuses. Here is what each one means and what to do next.

Card says What it means What to do
Connected Spekit can reach Teams Move on to section 5
Not connected Spekit has no approval from Microsoft yet Generate a new link and go through section 3 again
This link expired at... The 30 minutes ran out Select Generate a new link
Reconnect required Spekit could reach Teams before, but cannot now See [Admin Guide] Managing the Microsoft Teams Connection

ℹ️ Note: Connected is not finished. Two more settings live on the Microsoft side, and calls will not arrive without them. Almost every "connected but no calls arrive" case is one of the next 2 sections being missed.

 

5. Allow Spekit's app to read meetings

Your Microsoft admin does this part. They need to be a Teams Administrator or a Global Administrator.

Microsoft has no screen for this, so it is done in PowerShell, Microsoft's command window. It is one time, for the whole company, and takes about 10 minutes the first time. Run every command below inside PowerShell, where the line starts with PS. In a plain Terminal they fail with "command not found".

Open PowerShell first:

ℹ️ Which version: Microsoft supports this on Windows PowerShell 5.1 or PowerShell 7.2 and later. We recommend PowerShell 7. The commands then behave the same on every computer, and you skip 2 prerequisites that 5.1 needs: .NET Framework 4.7.2 or later, and updating PowerShellGet first with Install-Module -Name PowerShellGet -Force -AllowClobber. To see what you have, run $PSVersionTable.PSVersion.

Your computer What to do
Windows PowerShell is already installed. Open the Start menu, type PowerShell, and open Windows PowerShell. No admin rights needed
Mac Install it first. With Homebrew, run brew install --cask powershell in the Terminal app, then type pwsh to open PowerShell. Without Homebrew, download the macOS .pkg from Microsoft's page "Installing PowerShell on macOS", install it, then type pwsh in Terminal

Note: Once you're inside the PowerShell session, the same commands can be used regardless of which operating system you're running.

Install the module and sign in:

Install-Module -Name MicrosoftTeams -Force -AllowClobber
Connect-MicrosoftTeams

Use Connect-MicrosoftTeams -UseDeviceAuthentication and finish signing in at microsoft.com/devicelogin.

Microsoft shows a screen called Enter code to allow access. Type the code PowerShell gave you and select Next, then sign in as normal. PowerShell carries on once that is done.

Look at the company-wide policy first:

Get-CsApplicationAccessPolicy -Identity Global

What you do next depends on what that shows.

What Global shows What to run
AppIds comes back empty, shown as AppIds : {}. This is the usual case Create the policy and grant it, using both commands in A below
Other apps already listed Use the single command in B below. Do not run the grant

A. Global lists no apps:

New-CsApplicationAccessPolicy -Identity Spekit-Meetings -AppIds "0df52125-4f1b-4177-b16a-125310d5451e" -Description "Lets Spekit read meeting transcripts"
Grant-CsApplicationAccessPolicy -PolicyName Spekit-Meetings -Global

B. Global already lists other apps:

ℹ️ Important: your company already uses an access policy for another product. Running the grant above could replace that product's access. Add Spekit's app to the existing Global policy instead:

Set-CsApplicationAccessPolicy -Identity Global -AppIds @{Add="0df52125-4f1b-4177-b16a-125310d5451e"}

The same Set command also fixes a Global policy that is missing Spekit's app.

Then check your work:

Get-CsApplicationAccessPolicy -Identity Global

The AppIds line has to list 0df52125-4f1b-4177-b16a-125310d5451e. A policy change can take up to 30 minutes to take effect.

ℹ️ Note: A person who has their own per-user access policy is not covered by Global. Add Spekit's app to that person's policy too, or their meetings will not reach Spekit.

 

6. Turn on Transcript API access and speaker names

Your Microsoft admin does this part too. They need to be a Teams Administrator.

In the Teams admin center:

Go straight to Meeting settings, or open Meetings > Meeting settings from the left menu.

  1. Go to Meetings > Meeting settings.
  2. Under Transcript API access, turn Microsoft Graph access on.
  3. Select Configure, then turn Include speaker attribution on.
  4. Select Save at the bottom of the page.

ℹ️ Expect a warning from Microsoft. When you turn on speaker attribution, Microsoft shows: enabling speaker attribution may expose personal or sensitive information. That is normal. Spekit needs it to tell you who said what in the recap. The same panel also offers an Entra Admin Portal button for per-app permissions, which you do not need for this setup.

ℹ️ Important: Apply in the side panel does not save this setting. You have to select Save at the bottom of the page.

It can take up to an hour to take effect. To check from PowerShell, both values have to come back as True:

Get-CsTeamsMeetingConfiguration -Identity Global | Select-Object EnableGraphTranscriptAccess, EnableAttributedTranscripts

When your Microsoft admin needs these steps again

Sections 5 and 6 set company-wide settings that stay in place. There are only 3 times anyone comes back to them.

Situation What to redo
A new product starts using the Global access policy Run the Get command and check Spekit's app is still listed
Someone gets their own per-user access policy Add Spekit's app to that policy, or that person's meetings stop arriving
Your company reconnects Spekit after a disconnect Nothing here. Sections 5 and 6 stay done, because they are company settings

 

7. Test it

Anyone at your company with a Spekit account can test.

  1. Schedule a short Teams meeting.
  2. Invite 1 Spekit user and 1 person from outside your company.
  3. Start transcription, or record with transcription on.
  4. End the meeting.

The call normally appears in that user's AI Sidekick Meetings list within a few minutes of Microsoft finishing the transcript. If nothing arrives after a day, see [Admin & Rep Guide] Troubleshooting the Microsoft Teams Integration.

Use cases for a test call

The test call is also the fastest way to answer the 3 questions customers ask right after setup.

Question What the test call shows
Did it actually work? The call lands in the AI Sidekick within minutes
What does my rep see? Have the rep screen share their Meetings list
Why did my call not match a deal? Invite a Salesforce contact with an opportunity role, and a second person without one. The difference is visible straight away

 

8. Best practices

Most setup problems come from doing this in pieces over several days, or from changing a Microsoft policy without looking at it first. These 6 habits avoid both.

Practice Why it helps
Do all 3 steps in one session Calls held while setup is half done are not picked up later
Connect before an important deal cycle Spekit never goes back for older calls
Run the Get command before changing the access policy It tells you whether another product already relies on the Global policy
Wait before you judge it broken The policy takes up to 30 minutes, and the Teams setting takes about an hour
Fix a broken access policy within 3 days While the policy is broken, calls wait instead of arriving. Once it is fixed, only calls that started in the 72 hours before Spekit's next daily check are recovered. Older ones are lost for good
Keep a note of who connected Teams, and of any per-user policies If that person leaves, an Account Admin has to disconnect and reconnect to change the owner. Per-user policies override Global, and they are the most common reason 1 person's calls are missing

💡 Pro Tip: If your Microsoft admin would rather be walked through it, Spekit can do the whole setup with you on a call. Submit a request and ask for a Teams setup walkthrough.

 

9. Common questions

Can every rep connect their own Teams? No. One connection covers the whole company.

How long is the connect link good for? 30 minutes. Generate a new one as often as you need.

Can I see the card but not the buttons? Then you are not an Account Admin. Ask an Account Admin at your company to do the connecting.

Does this give Spekit access to our calendars? No. The 4 permissions are read-only and cover transcripts, meeting details, the user list, and attendance reports.

Will this affect another vendor's access policy? Only if you run the grant command when Global already lists other apps. Use option B in section 5 instead.

Why does nothing happen right after I save? The access policy takes up to 30 minutes. The Teams setting takes up to an hour.

Do I have to do this again every year? No. The connection stays until someone disconnects it, or until the approval is removed in Microsoft.

If we disconnect Spekit later, does the Microsoft setup undo itself? No. Disconnecting in Spekit does not touch Microsoft. The approval and the access policy stay in your tenant until you remove them.

Was this article helpful?
0 out of 0 found this helpful