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 @Merlin 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
@Merlin 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
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
@Merlin 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 @Merlin 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.
Context and follow-up questions
Merlin remembers conversation context for 15 minutes. Within this window you can ask follow-up questions:
@Merlin how many invoices do I have?→ Merlin answers with the count@Merlin and how many of those are unpaid?→ Merlin understands "those"
After 15 minutes a new conversation starts without previous context.
Billing
Teams messages are billed as chat sessions:
- First message = 0.5 minutes
- Follow-up questions within 15 minutes = free (same session)
- After 15 minutes = new session of 0.5 minutes
This is the same rate as webchat sessions.
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)
@Merlin how many outstanding invoices do I have?@Merlin create a draft invoice for Bakker BV, €2500 excl VAT@Merlin what is the status of invoice 2025-0042?
Calendar and email (Microsoft 365 / Google)
@Merlin what is on my agenda tomorrow?@Merlin do I have unread emails?@Merlin send an email to jan@example.com with the subject "Quote"
CRM and contacts
@Merlin look up the phone number for Bakker BV@Merlin create a new contact: Jan de Vries, jan@example.com
Knowledge base
@Merlin how does our return policy work?@Merlin 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 15 minutes. If you ask a follow-up question after that time, repeat the relevant information in your message.