Teams channel
Connect Microsoft Teams as an inbound channel for CallMerlin.
Teams channel
The Teams channel lets your employees chat with Merlin directly in Microsoft Teams. Type @CallMerlin followed by a question in a Teams channel and Merlin replies with data from your connected services.
Availability
The Teams channel is available from the Professional plan onwards.
How it works
- An employee types
@CallMerlin how many invoices do I have?in a Teams channel - Merlin immediately sends a placeholder: "Working on it..."
- Within 5-15 seconds Merlin replies with the actual answer
- Merlin has access to the same tools as webchat, phone and desktop
Speak instead of typing (mobile)
On your phone, type @CallMerlin and dictate your question using the microphone on your keyboard (iOS, Gboard, SwiftKey). Merlin receives plain text, just like typed messages. No extra setup needed.
Requirements
Before you can activate the Teams channel you need:
- A Professional or higher plan
- An active Microsoft 365 connection (under Connections in the dashboard)
- Team owner permissions in the Teams team where you want to use Merlin
IT admin requirement
The Microsoft 365 / Teams administrator must have "Upload custom apps" enabled:
- Go to the Teams admin center
- Navigate to Teams apps → Setup policies
- Open the policy that applies to your users (e.g. Global)
- Set "Upload custom apps" to On
Without this setting the "Create an outgoing webhook" option will not appear in Teams.
Setup
Step 1: Create an Outgoing Webhook in Teams
- Open Microsoft Teams (web or desktop)
- Go to the team where Merlin should be active
- Click the three dots (•••) next to the team name
- Click Manage team
- Go to the Apps tab
- Click "Create an outgoing webhook" in the bottom right
- Fill in:
- Name:
Merlin - Callback URL: the URL shown in the CallMerlin dashboard under Teams channel
- Description:
AI assistant for your business tools
- Name:
- Click Create
- An HMAC security token appears, copy it immediately. It is only shown once
Step 2: Configure the dashboard
- Go to callmerlin.app → Dashboard → Teams channel
- Paste the HMAC token from step 1
- Enter your Tenant ID (found in Azure Portal → Microsoft Entra ID → Overview)
- Select your Microsoft 365 connection (must already exist under Connections)
- Choose a default PIN (optional, for new employees)
- Turn the toggle ON
- Click Save
Step 3: Send your first message
- Go back to Teams
- Type
@CallMerlin helloin the channel - Merlin replies with "Working on it..." followed by a greeting
On the first message your Teams account is automatically registered in the CallMerlin dashboard.
User mapping
Each Teams user is linked to a PIN code. The PIN determines which capabilities and template Merlin uses.
Automatic registration
When an employee types @CallMerlin for the first time in Teams, their account is automatically registered. You will see them appear in the dashboard under Teams channel → User mappings.
Assigning a PIN
- Go to Teams channel in the dashboard
- Find the employee in the User mappings table
- Select a PIN from the dropdown
- The mapping takes effect immediately
Unlinking a PIN
Click Unlink next to an employee to remove the PIN mapping. The employee will fall back to the default PIN (if one is set).
Default PIN
Set a default PIN for Teams users who are not individually mapped yet. New employees will have immediate access without manual mapping.
Tip: Create a PIN with limited read-only capabilities as the default. Assign broader permissions via individual mappings.
Meeting summaries
For video meeting summaries (not just Teams chat): enable live transcription during the meeting, have your tenant admin enable meeting transcription for online meetings in Microsoft 365, and grant the PIN permission Meeting summaries.
The dashboard under Teams channel shows the checklist. Details: Meeting summaries.
Summarize conversations and ask for advice
Merlin does not listen passively in team channels. You always start with @CallMerlin. Useful commands in the thread where your team is discussing:
| Command | What you get |
|---|---|
@CallMerlin summarize this conversation | Summary of the thread |
@CallMerlin what are the action items? | Action items from the discussion |
@CallMerlin what was decided? | Decisions from the thread |
@CallMerlin draft an action plan | Concrete next steps |
For another Teams channel or longer history you need a connected Microsoft 365 link. Your admin must have enabled Read messages on your PIN (under PIN users → Permissions):
@CallMerlin read the marketing channel and give advice@CallMerlin what was discussed in this channel in the past hour?
Billing: same as any Teams chat session (starts as 1 minute; extra messages in the same session can increase the forfait). See Billing.
Note: for summarize commands (e.g. "summarize this conversation") Merlin automatically reads up to 50 messages from the current thread. For other questions the 15-minute context applies.
Tip after a meeting: Type
@CallMerlin summarize this conversationand then@CallMerlin create tasks for each action itemin the same thread. Within 10 minutes that counts as one chat session.
Context and follow-up questions
Merlin remembers conversation context for 10 minutes. Within this window you can ask follow-up questions:
@CallMerlin how many invoices do I have?→ Merlin answers with the count@CallMerlin and how many of those are unpaid?→ Merlin understands "those"
After 10 minutes a new conversation starts without previous context.
Billing
Teams messages are billed as chat sessions:
- First message = 1 minute
- Extra messages in the same session (within 10 minutes) can increase the forfait
- After 10 minutes of silence = new session from 1 minute
This follows the same rules as webchat. See Billing.
Limits
To prevent abuse, hourly limits apply:
| Limit | Value |
|---|---|
| Per user | 20 messages per hour |
| Per channel | 50 messages per hour |
When the limit is reached Merlin will let you know how many minutes to wait.
What can you ask?
Everything you can ask Merlin via webchat, phone or desktop also works in Teams. Examples per connection:
Accounting (Moneybird)
@CallMerlin how many outstanding invoices do I have?@CallMerlin create a draft invoice for Bakker BV, €2500 excl VAT@CallMerlin what is the status of invoice 2025-0042?
Calendar and email (Microsoft 365 / Google)
@CallMerlin what is on my agenda tomorrow?@CallMerlin do I have unread emails?@CallMerlin send an email to jan@example.com with the subject "Quote"
CRM and contacts
@CallMerlin look up the phone number for Bakker BV@CallMerlin create a new contact: Jan de Vries, jan@example.com
Knowledge base
@CallMerlin how does our return policy work?@CallMerlin what is the procedure for sick leave?
Limitations
- Works only in public channels, not in private channels or DMs
- Each Teams team needs its own webhook (not shareable between teams)
- Merlin cannot send files or use Adaptive Cards
- Responses are limited to 4000 characters
Troubleshooting
"Create an outgoing webhook" does not appear
The IT admin must enable "Upload custom apps" in the Teams admin center. See the IT admin requirement section.
"Error submitting webhook" during creation
- Verify the Callback URL is correct and starts with
https:// - Wait 5-10 minutes and try again (Teams can be temporarily slow)
- Try using the Teams web client instead of the desktop app
Merlin does not respond
- Check that the toggle is ON in the dashboard
- Check that the HMAC token is correctly pasted
- Check that the Tenant ID is correct
- Check that a Microsoft 365 connection is selected
- Check that the user has a PIN (or a default PIN is set)
"Link your Teams account to a PIN"
The employee has no PIN mapped and no default PIN is set. Go to the dashboard and assign a PIN, or set a default PIN.
"Monthly budget has been reached"
The account has a budget cap and it has been reached. Increase the cap under Billing in the dashboard.
Merlin does not understand the context
Context expires after 10 minutes. If you ask a follow-up question after that time, repeat the relevant information in your message. For summaries use the commands in Summarize conversations: Merlin then reads up to 50 messages from the thread automatically.