Guide 02
Put Your Product in Teams Without Building a Bot
Your customers live in Microsoft Teams. Here's how to put your product there — in conversation, with each user's own permissions — without writing, hosting or maintaining a bot.
Updated 7 November 2026 · 5 min
When a B2B customer asks "do you have anything in Teams?", the honest answer is often no. Because a Teams bot is not a small project:
- an Azure Bot resource, an app registration, secrets that expire;
- a web service that receives Bot Framework messages and replies;
- a conversation engine that understands requests and calls your API;
- per-user authentication, so each person acts only with their own permissions;
- a Teams app manifest, icons, approval by the customer's admin;
- and maintenance for all of it.
With api0, you keep the one part Microsoft requires — the Azure Bot resource — and the rest is provided.
How it works
Teams user ──► Azure Bot (yours) ──► api0 ──► your API
│
tools, identity, log, credits
- The user messages the bot in a private Teams chat.
- Microsoft forwards the message to the messaging endpoint api0 provides.
- api0's assistant understands the request and calls the tools built from your API — as that user.
- The answer comes back in Teams.
These are the same tools as in Claude or WhatsApp: you set up your API once.
This guide covers the approach. The full step-by-step, with the Teams admin approval and the common errors, is in the Teams guide.
Before you start
- Your API imported into api0 (Tools tab) — see the main guide.
- Access set up (Access tab): ideally each person's own credential, so your application applies their permissions.
- Access to the Azure portal with the right to create an Azure Bot resource.
- On the customer side: a Teams admin who approves the app, or custom app upload allowed.
Step 1 — Create the Azure Bot resource
- Azure portal → Create a resource → Azure Bot.
- Bot name, subscription, resource group. Pricing tier: F0.
- App type: Single Tenant. Note the App ID (a GUID) and the Microsoft tenant ID.
- In the resource → Configuration → Manage Password → New client secret. Copy the value right away: Azure only shows it once.
Step 2 — Register it in api0
app.api0.ai → Channels → Teams:
- App ID, secret, Microsoft tenant ID;
- bot name (the one your users will see);
- optional: a system prompt (tone, answer length, confirmations).
api0 immediately asks Microsoft for a token with these values. If the App ID and secret don't belong together, you know right away, with a clear message — not three days later in production.
In return, api0 shows your bot's messaging endpoint.
Step 3 — Point Azure at api0
In the Azure Bot resource:
- Configuration → Messaging endpoint → paste the URL from api0 → Apply.
- Channels → Microsoft Teams → accept the terms → Apply.
Step 4 — The Teams app package
A bot reaches nobody until a Teams app naming it is installed. That app is a zip: a manifest.json and two icons. This is often where projects stall.
In Channels → Teams, api0 generates the package from what it already knows: App ID, bot name, your tenant's Get started page. You download it, and that's it.
The app is personal scope: the bot answers in one-to-one chats, where it makes sense.
Prefer to build it yourself (branded icons, your own text)? A manifest template is provided.
Step 5 — Install and test
- For yourself: Teams → Apps → Manage your apps → Upload an app.
- For an organization: the Teams admin publishes it from the Teams admin center.
In api0, the Test button checks the chain. Then message the bot: on the first message, it sends the person a link to link their account. Once linked, every action is taken with their identity.
Software vendors: one bot per customer
If you sell software to several companies, the cleanest model is one api0 tenant per customer:
- each customer has its own tools, users, credits and log;
- its bot lives in its Azure tenant (Single Tenant), which its security team prefers;
- you bill usage customer by customer.
You can do the setup for them (with an Azure account in their Microsoft tenant) or send them the steps above: about half an hour on their side.
What your customer gets
- Your product in the tool they already have open all day.
- Answers and actions in plain language, no training needed.
- Every action with the person's own permissions, nothing more.
- A log of every call.
What you get
- No bot to write, host or maintain.
- The same setup serves Claude, WhatsApp and Telegram.
- A concrete answer to your customers' "AI" requests.
Common problems
| Symptom | Likely cause |
|---|---|
| "Invalid App ID" in api0 | The secret was pasted into the App ID field. The App ID is a GUID. |
| Microsoft rejects the App ID / secret pair | Expired secret, or wrong Microsoft tenant ID. |
| The bot doesn't answer | Messaging endpoint not pasted in Azure, or Teams channel not enabled. |
| The app doesn't show up in Teams | Custom app upload is disabled: go through the Teams admin. |