Skip to main content
Use the Teams meeting pipeline when you want Mibyan to ingest Microsoft Graph meeting events, fetch transcripts first, fall back to recordings plus STT when needed, and deliver a structured summary to downstream sinks. Prerequisites: see Microsoft Teams for the underlying bot/credential setup.
Run mibyan gateway setup and pick Teams Meetings for a guided walk-through.
This page focuses on setup and enablement:
  • Graph credentials
  • webhook listener configuration
  • Teams delivery modes
  • pipeline config shape
For day-2 operations, go-live checks, and the operator worksheet, use the dedicated guide: Operate the Teams Meeting Pipeline.

What This Feature Does

The pipeline:
  1. receives Microsoft Graph webhook events
  2. resolves the meeting and prefers transcript artifacts first
  3. falls back to recording download plus STT when no usable transcript is available
  4. stores durable job state and sink records locally
  5. can write summaries to Notion, Linear, and Microsoft Teams
Operator actions stay in the CLI (the teams-pipeline subcommand is registered by the teams_pipeline plugin — enable it via mibyan plugins enable teams_pipeline or set plugins.enabled: [teams_pipeline] in config.yaml):

Prerequisites

Before enabling the meetings pipeline, make sure you have:
  • a working Mibyan install
  • the existing Microsoft Teams bot setup if you want Teams outbound delivery
  • Microsoft Graph application credentials with the permissions required for the meeting resources you plan to subscribe to
  • a public HTTPS URL that Microsoft Graph can call for webhook delivery
  • ffmpeg installed if you want recording-plus-STT fallback

Step 1: Add Microsoft Graph Credentials

Add Graph app-only credentials to ~/.mibyan/.env:
These credentials are used by:
  • the Graph client foundation
  • subscription maintenance commands
  • meeting resolution and artifact fetches
  • Graph-based Teams outbound delivery when you do not provide a dedicated Teams access token

Step 2: Enable the Graph Webhook Listener

The webhook listener is a gateway platform named msgraph_webhook. At minimum, enable it and set a client state value:
The bind host is read from the platform’s extra.host in config.yaml (there is no MSGRAPH_WEBHOOK_HOST env var — see the webhook listener reference). The listener exposes:
  • /msgraph/webhook for Graph notifications
  • /health for a simple health check
You need to route your public HTTPS endpoint to that listener. For example, if your public domain is https://ops.example.com, your Graph notification URL would typically be:

Step 3: Configure Teams Delivery and Pipeline Behavior

The meeting pipeline reads its runtime config from the existing teams platform entry. Pipeline-specific knobs live under teams.extra.meeting_pipeline. Teams outbound delivery stays on the normal Teams platform config surface. Example ~/.mibyan/config.yaml:
If you bind the listener to a non-loopback host such as 0.0.0.0, you must also set allowed_source_cidrs to Microsoft’s webhook egress ranges. Loopback binds (127.0.0.1 / ::1) are the intended dev-tunnel and local reverse-proxy setup.

Teams Delivery Modes

The pipeline supports two Teams summary-delivery modes inside the existing Teams plugin.

incoming_webhook

Use this when you want a simple webhook post into Teams without channel-message creation through Graph. Required config:

graph

Use this when you want Mibyan to post the summary through Microsoft Graph into a Teams chat or channel. Supported targets:
  • chat_id
  • team_id + channel_id
  • team_id + home_channel fallback for the existing Teams platform
Example:

Step 4: Start the Gateway

Start Mibyan normally after updating config:
Or, if you run Mibyan in Docker, start the gateway the same way you already do for your deployment. Check the listener:

Step 5: Create Graph Subscriptions

Use the plugin CLI to create and inspect subscriptions. Examples:
Graph subscriptions expire in 72 hoursMicrosoft Graph caps webhook subscriptions at 72 hours and will not auto-renew them. You MUST schedule mibyan teams-pipeline maintain-subscriptions before going live, or notifications will silently stop three days after any manual subscription creation. See Automating subscription renewal in the operator runbook — three options (Mibyan cron, systemd timer, plain crontab).
For subscription maintenance and day-2 operator flows, continue with the guide: Operate the Teams Meeting Pipeline.

Validation

Run the built-in validation snapshot:
Useful companion checks:

Troubleshooting