Microsoft Teams logo

Microsoft Teams

CommunicationsOAuth 2.0Live

Askel connects your product to customer Teams tenants using Microsoft Graph so you can post messages, react to channel activity, and surface notifications where enterprise users already spend their day. No webhooks to manage, no bot registrations to maintain, and no tokens that expire and break silently on a Friday afternoon.

What you can do

Post messages to any channel or chat

Send formatted cards, plain text, and adaptive cards to public channels like #general-announcements or private channels like #finance-alerts. Direct-message an individual user when the notification is personal.

List teams and channels

Enumerate the customer's teams and channels so your product can present a picker in settings. Users choose exactly where notifications land rather than having to paste in an ID.

Subscribe to channel events

React to new channel messages, replies in threads, and @mentions of your bot. Askel delivers the event payload to your configured endpoint so your product can respond in near real time.

Read message content and metadata

Fetch the last N messages from a channel or a specific chat thread. Useful for building context-aware responses, audit exports, or activity feeds inside your product.

Send proactive notifications to users

Initiate a conversation with a specific Teams user even without a prior message from them. Practical for onboarding prompts, approval requests, and escalation alerts that need guaranteed delivery.

Register incoming webhooks for lightweight posting

For customers who prefer a simpler setup, Askel can also use a connector webhook URL to post formatted messages into a channel without requiring admin consent for the full Graph scope.

Sample use case

Escalation alerts in a customer success platform

You sell a customer-success platform. A new customer, Bridgewater Manufacturing, runs entirely on Microsoft 365 and Teams. Their CS team monitors account health in your product but wants critical risk alerts posted directly to their #account-escalations Teams channel so nothing falls through the cracks during busy sprints.

  1. 1

    Connect the tenant

    Bridgewater's Microsoft 365 admin clicks Connect Teams inside your product. Askel launches the Microsoft consent screen listing the Graph scopes required: ChannelMessage.Send, Channel.ReadBasic.All, and Team.ReadBasic.All. The admin approves, and Askel stores the refresh token.

  2. 2

    Pick the target channel

    Askel reads Bridgewater's teams and channels and presents them in your settings UI. The CS lead selects the Bridgewater Engineering team and the #account-escalations channel. Your product stores the channel ID against the Bridgewater account record.

  3. 3

    Configure the alert rule

    In your product, create a workflow: when an account's health score drops below 40, call the Askel API to post an adaptive card to the stored channel. The card shows account name, health score, days since last activity, and a deep link to the risk view in your product.

  4. 4

    Subscribe to reply events

    Register a channel subscription so that when a CS rep replies to the alert card inside Teams, your product receives the message payload. The reply is logged against the account's activity timeline, closing the loop without requiring the rep to switch apps.

  5. 5

    Test and go live

    Trigger a manual health-score drop on a test account. The adaptive card appears in #account-escalations within seconds. A CS rep replies from Teams, and the reply surfaces in your product's activity log. Askel's delivery log confirms Graph accepted the message and the subscription is active.

Authentication

OAuth 2.0

Customer's Microsoft 365 admin clicks Connect inside Askel and consents to the requested Microsoft Graph scopes on the Microsoft consent screen. Askel stores the refresh token; per-request access is bounded to the channels and teams granted.

Data flow

How Askel sits between your product and the customer's system

Data flow between Customer's Teams tenant, Askel, and Your productCustomer's Teams tenantAPI endpointAskelauth · mapping · driftYour productyour backend
TeamsChannelsChannel messagesChat messagesMentionsWebhooks

FAQ for Microsoft Teams

Does this require a Teams-certified bot registration in Azure?+
No. Askel uses delegated Microsoft Graph permissions obtained via OAuth consent. You do not need to register a bot in Azure Bot Service or go through the Teams app certification process to send messages and read channel data.
Which Microsoft Graph scopes does Askel request?+
Askel requests the minimum scopes for the workflows you enable. A typical setup uses ChannelMessage.Send, Channel.ReadBasic.All, and Team.ReadBasic.All. If you enable event subscriptions or direct messaging, the relevant scopes are added and shown on the Microsoft consent screen before the admin approves.
What happens when the admin who connected the tenant leaves the company?+
Askel uses delegated tokens tied to the admin account, so if that account is disabled in Entra ID the refresh token will eventually stop working. We recommend connecting with a service account or shared admin identity rather than a personal admin account to avoid this.
Can we post to private channels and group chats?+
Yes for private channels, provided the connecting account is a member of the channel. Group chats require the Chat.ReadWrite scope and that the connecting account is a participant. Askel surfaces both in the channel picker when the relevant scopes are granted.
Ready to ship integrations faster?customers faster?implementations faster?
Join onboarding teams delivering integrations without the engineering queue,
catching drift before it breaks, and hitting go-live dates.
Security & Compliance
ISO 27001 Certified
GDPR Compliant

© 2025 Askel.ai. All rights reserved.