CallMerlinDocs
Features

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

  1. An employee types @Merlin how many invoices do I have? in a Teams channel
  2. Merlin immediately sends a placeholder: "Working on it..."
  3. Within 5-15 seconds Merlin replies with the actual answer
  4. 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:

  1. Go to the Teams admin center
  2. Navigate to Teams appsSetup policies
  3. Open the policy that applies to your users (e.g. Global)
  4. 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

  1. Open Microsoft Teams (web or desktop)
  2. Go to the team where Merlin should be active
  3. Click the three dots (•••) next to the team name
  4. Click Manage team
  5. Go to the Apps tab
  6. Click "Create an outgoing webhook" in the bottom right
  7. Fill in:
    • Name: Merlin
    • Callback URL: the URL shown in the CallMerlin dashboard under Teams channel
    • Description: AI assistant for your business tools
  8. Click Create
  9. An HMAC security token appears, copy it immediately. It is only shown once

Step 2: Configure the dashboard

  1. Go to callmerlin.appDashboardTeams channel
  2. Paste the HMAC token from step 1
  3. Enter your Tenant ID (found in Azure Portal → Microsoft Entra ID → Overview)
  4. Select your Microsoft 365 connection (must already exist under Connections)
  5. Choose a default PIN (optional, for new employees)
  6. Turn the toggle ON
  7. Click Save

Step 3: Send your first message

  1. Go back to Teams
  2. Type @Merlin hello in the channel
  3. 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 channelUser mappings.

Assigning a PIN

  1. Go to Teams channel in the dashboard
  2. Find the employee in the User mappings table
  3. Select a PIN from the dropdown
  4. 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:

LimitValue
Per user20 messages per hour
Per channel50 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

  1. Check that the toggle is ON in the dashboard
  2. Check that the HMAC token is correctly pasted
  3. Check that the Tenant ID is correct
  4. Check that a Microsoft 365 connection is selected
  5. Check that the user has a PIN (or a default PIN is set)

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.

On this page