iSolvoltar ao site

ENGINEERING

A Teams assistant on your own gateway, no Copilot seat required

August 2026 · 4 min read

Just activated iSol API? Your key lives in the customer portal, isollm.ai/account → API keys (the portal shows the raw sk-… value; store it in your secret manager). The endpoint for every guide on this blog is https://tokens.4clouders.com/v1, and per-key spend updates live on the same portal page. That is all you need to follow along.

A Teams assistant without a Copilot seat

Microsoft 365 Copilot is priced per seat, on top of whatever M365 license the person already has. For a team that wants an AI assistant answering questions in one or two channels, not a copilot woven into every app on every seat, that's a lot of licensing to buy for a narrow use case. The no-code path to the same outcome, scoped to what you actually need, is a Power Automate flow triggered by Teams channel messages.

Step 1: The flow: trigger, HTTP, post

Trigger:  When keywords are mentioned   (channel: #ajuda · keyword: @isol)
Action:   HTTP
  Method:  POST
  URI:     https://tokens.4clouders.com/v1/chat/completions
  Headers: Authorization: Bearer sk-your-gateway-key
           Content-Type: application/json
  Body:    { "model": "isol-4.9",
             "messages": [
               {"role":"system","content":"You are the internal Teams assistant. Max 3 lines."},
               {"role":"user","content": @{triggerBody()?['messageText']} } ] }
Action:   Reply in channel →  body('HTTP')?['choices'][0]['message']['content']

The pattern is three steps, all standard Power Automate actions:

That's the entire assistant. No bot registration in the Azure Bot Framework, no app package to sideload, if channel triggers and channel posting cover what you need, the whole thing lives inside one flow.

Step 2: What the channel gets back

The same call the flow makes, run for real, an HR-style question asked in Portuguese, answered in Portuguese:

Real call: channel question answered in Portuguese by the iSol gateway
Real call, captured 2026-08-19: the model answers in the language of the question, no extra config.
Real session: the question arriving in the channel, the call the flow fires and the answer coming back to Teams, with measured latency.

Step 3: Where users actually see this

Inside Teams, this surfaces through the Workflows app, the rebranded, embedded version of Power Automate that ships in Teams by default. A user who opens the Workflows tab in a channel sees the flow you built listed there, and can trigger it manually if you build a manual-trigger version alongside the automatic one. Anyone building Teams-native automation without leaving Teams is, in practice, already using Power Automate through this surface.

What this honestly is, and what it isn't

Worth being precise here, because it's easy to oversell: this is not Copilot embedded in the Teams UI. There's no Copilot icon appearing across chat, meetings, and Loop components. What you get is a bot-like presence that answers in the specific channels you wire it into, backed by your model, logged through your gateway. For a support channel, an internal FAQ channel, or a channel where people ask the same categories of question repeatedly, that's the actual requirement, not a platform-wide assistant.

The HTTP action carries the same premium-connector requirement here as anywhere else in Power Automate, a per-flow or premium plan, not included in a standard Microsoft 365 license. Factor that into the cost comparison against a Copilot seat; it isn't free, but for most tenants it's a license already covering other flows, not a new per-user recurring cost that scales with headcount.

Latency is flow latency, not chat latency, a few seconds between a message posting and the assistant's reply appearing, because the request goes trigger → HTTP call → parse → post, not a live typing indicator. For channel Q&A, where a question sits for a few seconds either way while people read it, that's not a noticeable tradeoff. It's a poor fit for anything that needs to feel like a live conversation.

The upside underneath the licensing math: the channel content going into these requests goes to your gateway and your model, not to a Microsoft-operated Copilot backend where you don't control logging or retention. For teams handling anything sensitive in a channel, HR, legal, security incident channels, that's often the actual reason to build this instead of waiting on a Copilot rollout, not just the seat cost.

Scoping it so it doesn't get noisy

A channel-wide trigger on every message will answer things nobody asked it to answer, and burn tokens doing it. The keyword or @mention trigger is worth the extra setup for any channel with regular human conversation, not just Q&A traffic, it keeps the assistant from injecting a reply into a thread that was two colleagues talking to each other. For channels that exist mainly to be asked things, an IT helpdesk channel, an onboarding-questions channel, the plain "new message" trigger is fine, since near enough everything posted there is already a question.

One more thing worth building in early: a short system prompt that tells the model what it doesn't know, not just what it does. "If the question isn't about X, say you can only help with X" keeps the assistant from confidently answering something outside its actual scope in a channel where people will take the answer at face value. That's a one-line addition to the system message in the HTTP action's body, and it's the difference between a useful narrow assistant and one that quietly becomes a liability the first time someone asks it something unrelated.

Configuration from Microsoft Teams's official documentation, checked 2026-08-04.

Try it on ours

Our gateway (iSol API) is the endpoint behind that HTTP action, your model, your logs, no Copilot seat. US$ 99/month, 14-day trial.

See plans →

Step 4: Verify at the gateway, not at the client

Whatever the tool's UI says, the source of truth is the key's ledger, every request lands there with tokens and spend. If nothing shows up, the change didn't take:

curl -s https://tokens.4clouders.com/key/info \
  -H "Authorization: Bearer sk-your-gateway-key" | jq .info.spend

Every session print on this page was captured against the live iSol gateway on 2026-08-19.

Same gateway, rest of your stack: every guide with real sessions

The pattern: one gateway, every tool WhatsApp Telegram GitHub Actions Claude Code Cursor VS Code aider OpenCode n8n Zapier Power Automate Power BI Google Sheets Website chatbot Hermes Agent