Hermes Agent Microsoft Teams lets a small business put an AI agent inside the Teams chats its staff already use, and, if you want, get a written summary of each Teams meeting posted back to a channel. There are two separate pieces: a chat bot and a meeting pipeline. Here’s how to set up each one in order, what your Microsoft account needs, and how to keep it safe, straight from the Hermes docs.
Key takeaways
- Two parts: a Teams chat bot and the optional teams_pipeline meeting plugin.
- The bot is registered with Microsoft’s Teams CLI, no Azure portal needed.
- Meeting summaries need a tenant admin and Teams licences that produce transcripts.
- Graph subscriptions expire within 72 hours, so a renewal job is a must.
- Want it set up for your business instead? Claim a free strategy session.
What Hermes Agent does inside Microsoft Teams
According to the Hermes Teams setup page, Hermes connects to Teams as a bot. Your staff message it like a colleague. In a private chat it answers every message; in group chats and channels it only answers when someone @mentions it.
The second piece is the Teams meeting pipeline. After a meeting, Microsoft Graph tells Hermes a transcript is ready, the pipeline fetches it and posts a summary to Teams, Notion or Linear.
| Part | What it does for your business | Who sets it up |
|---|---|---|
| Teams chat bot | Answers staff questions and runs tasks from chats and channels | Anyone comfortable with a terminal |
| Meeting pipeline | Posts a summary after each Teams meeting | Your Microsoft 365 admin |
| Approval cards | Asks before risky actions, with Allow Once, Allow Session, Always Allow and Deny | Built in |
| Allowlist | Only named staff can use the bot | You, in the env file |
Step 1: Get the Teams chat bot running
Run hermes gateway setup and pick Microsoft Teams for a guided setup, or do it by hand:
npm install -g @microsoft/teams.cli@preview
teams login
teams status --verbose # shows your AAD object ID
teams app create --name "Hermes" --endpoint "https://<your-tunnel-url>/api/messages"
- Teams can’t reach
localhost, so open a tunnel to port3978first. The docs show devtunnel, ngrok and cloudflared. teams app createprints a client ID, client secret and tenant ID. The secret is only shown once.- Save the IDs of the staff who should use the bot. You need them in the next step.
Want an AI agent working inside your team’s Teams chats? Inside the AI Profit Boardroom you get the Agent OS — Hermes, OpenClaw, OpenCode, Claude and Codex in one place — plus step-by-step Hermes training and four live coaching calls a week.
Want a plan for your business first? Claim your free strategy session.
Join the AI Profit Boardroom →Claim Your Free SEO Strategy Session →
Step 2: Add the settings and lock down who can use it
# ~/.hermes/.env
TEAMS_CLIENT_ID=<your-client-id>
TEAMS_CLIENT_SECRET=<your-client-secret>
TEAMS_TENANT_ID=<your-tenant-id>
TEAMS_ALLOWED_USERS=<aad-id-1>,<aad-id-2>
The docs are blunt: always set TEAMS_ALLOWED_USERS. Without it, anyone who finds or installs your bot can talk to it. Messages from anyone else are silently dropped. Run chmod 600 ~/.hermes/.env so only you can read the file.
Then restart the gateway with hermes gateway restart, check curl http://localhost:3978/health returns ok, and open the link from teams app get <teamsAppId> --install-link. It opens in Teams. Send the bot a message.
Step 3: Decide how the bot behaves in your channels
- Mentions: in channels and group chats the bot waits to be @mentioned. If you later give the app permission to read every channel message, set
TEAMS_REQUIRE_MENTION=trueto keep it quiet. - Approvals: risky commands show an Adaptive Card with four buttons. Clicking one replaces the card with the decision.
- Scheduled posts: set
TEAMS_HOME_CHANNELand Hermes cron jobs deliver there, for example a Monday roundup. - What’s missing: the messaging docs tick images, threads and typing for Teams, but not voice, files, reactions or streaming.
For a permanent setup, put the bot behind your own domain with a valid certificate. Teams rejects self-signed certificates, and the Hermes listener on 3978 only speaks plain HTTP behind your proxy.
Step 4: Add meeting summaries (optional)
The meeting pipeline is a built-in plugin that is off until you enable it. Your admin needs to register a Graph app first, following the Graph app guide. Check your licences first: the guide needs Teams Premium or other Teams licences that actually create meeting transcripts and recordings.
- Permissions for transcript summaries:
OnlineMeetings.Read.AllandOnlineMeetingTranscript.Read.All. - For a recording fallback:
OnlineMeetingRecording.Read.AllandCallRecords.Read.All, plusffmpegon your server. - Limit the app to named people with an Application Access Policy. Microsoft documents it here. Without it, the app can read every meeting in your company.
hermes plugins enable teams_pipeline
# then add MSGRAPH_TENANT_ID, MSGRAPH_CLIENT_ID, MSGRAPH_CLIENT_SECRET
# and the msgraph_webhook listener settings to ~/.hermes/.env
hermes teams-pipeline validate
Summaries can post into Teams through Graph or a simple incoming webhook, or go to Notion and Linear.
Want this set up for you instead of doing it yourself? Claim your free strategy session →
Step 5: Keep the meeting summaries running
This is the step people miss. Microsoft Graph subscriptions die after 72 hours or less, and the operator guide says forgetting to renew them is the most common way the pipeline breaks. Schedule renewal twice a day, for example with a crontab line:
0 */12 * * * /usr/local/bin/hermes teams-pipeline maintain-subscriptions >> /var/log/hermes/teams-pipeline-maintain.log 2>&1
The same guide also shows a Hermes cron job and a systemd timer if you prefer those.
- Check for problems with
hermes teams-pipeline list --status failed. - Replay a failed summary with
hermes teams-pipeline run <job-id>after fixing the cause. - Run
hermes teams-pipeline validateafter any settings change.
My verdict
For a small business that already lives in Teams, begin small: one channel, a handful of named staff, and the chat bot only. It’s a one-afternoon job and the approval cards keep it safe. Add meeting summaries once your admin, licences and renewal job are sorted, and check every summary before it reaches a client.
One limit to know: the official pipeline works from transcripts after the meeting and doesn’t join calls. MeetStream, a community entry in the Hermes plugin catalog, claims call joining, but Nous Research doesn’t make it. For a hosted option, see my guide to Grok Bot in Microsoft Teams. Get the basics right and Hermes Agent Microsoft Teams is a simple way to bring an AI agent into the chat app your business already uses.
About Julian Goldie
I’m Julian Goldie — founder of Goldie Agency and the AI Profit Boardroom. I test new AI agents almost every day for 432K+ YouTube subscribers and run Hermes, OpenClaw, OpenCode, Claude and Codex side by side in my own Agent OS. Claim your free strategy session or join the AI Profit Boardroom.
Want another angle? Read the AI Profit Boardroom guide to Hermes Agent with Microsoft Teams.
FAQ: hermes agent microsoft teams
How do I connect Hermes Agent to Microsoft Teams?
Run hermes gateway setup and pick Microsoft Teams, or install the Teams CLI, create the bot with teams app create, add the credentials and allowlist to ~/.hermes/.env and restart the gateway.
Do I need the Azure portal for the Teams bot?
No. The Teams CLI registers the bot and gives you the client ID, secret and tenant ID. Only the meeting pipeline needs an admin to register a Graph app.
Why doesn’t the bot reply in my channel?
In channels and group chats it only replies when @mentioned. If it ignores you in a private chat too, your ID is probably missing from TEAMS_ALLOWED_USERS.
Can Hermes summarise my Teams meetings?
Yes, with the teams_pipeline plugin. It reads the meeting transcript through Microsoft Graph, falls back to the recording if needed, and posts a summary to Teams, Notion or Linear.
Why did meeting summaries stop after a few days?
Graph subscriptions expire within 72 hours. Schedule hermes teams-pipeline maintain-subscriptions, every 12 hours as the docs suggest.
Is it safe to let staff use the agent from Teams?
Set an allowlist, keep the env file private, and rely on the approval cards for risky commands. Limit the meeting app to named users with an Application Access Policy.
Ready to put Hermes to work in your business? Join the AI Profit Boardroom for the Agent OS, setup training and daily updates.
Or claim your free strategy session and we’ll map out your setup.
Starting from zero? Get the free AI course and community.
Join the AI Profit Boardroom →Claim Your Free SEO Strategy Session →Get the FREE AI Course + Community →
Related reading
Last updated November 2026. This page is a living guide to hermes agent microsoft teams — the facts here move fast and it is updated as they do.
