teams-meeting-pipeline

Manages Microsoft Teams meeting summaries, job replays, and Graph webhook subscriptions via CLI.

Updated Jul 3, 2026
One-click install
npx skills add https://github.com/CHENHUI-X/toolbox --skill teams-meeting-pipeline-chenhui-x
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: teams-meeting-pipeline
Source: https://github.com/CHENHUI-X/toolbox/tree/main/official-skills/productivity/teams-meeting-pipeline
Command: npx skills add https://github.com/CHENHUI-X/toolbox --skill teams-meeting-pipeline-chenhui-x

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Teams meeting summaries and transcripts often fail silently due to expired Graph webhook subscriptions, missing permissions, or delivery misconfigurations, leaving operators without visibility into why meeting notes never arrived. ## Core Features & Use Cases - Pipeline Inspection: Validate configuration, check Graph token health, list recent meeting jobs, and inspect individual job details through the hermes teams-pipeline CLI. - Job Replay and Debugging: Re-run failed or stale meeting jobs, and dry-run transcript resolution by meeting ID or join URL without persisting results. - Subscription Management: Create, renew, delete, and auto-maintain Microsoft Graph webhook subscriptions to prevent the 72-hour expiration cutoff. - Use Case: A user reports that yesterday's Teams meeting summary never arrived. You run list --status failed to find the job, show <job-id> to inspect the error, and run <job-id> to replay the summary and redeliver it. ## Quick Start Ask the assistant to check the Teams meeting pipeline status and list any failed meeting jobs using the hermes teams-pipeline commands.

Frequently Asked Questions about teams-meeting-pipeline

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I replay a failed Teams meeting summary job?

Run `hermes teams-pipeline list --status failed` to find the job ID, then `hermes teams-pipeline run <job-id>` to re-summarize and redeliver it. If it fails again, use `show <job-id>` to inspect the error and `fetch --meeting-id` to dry-run transcript resolution.

Why did my Teams meeting summaries stop arriving after a few days?

Microsoft Graph webhook subscriptions expire after 72 hours and do not auto-renew. Check with `hermes teams-pipeline subscriptions`, recreate with `subscribe`, and schedule `maintain-subscriptions` via cron at a 12-hour interval.

What credentials does the Teams meeting pipeline require?

The pipeline requires MSGRAPH_TENANT_ID, MSGRAPH_CLIENT_ID, and MSGRAPH_CLIENT_SECRET set in the hermes .env file. These come from an Azure AD app registration with admin-consented Microsoft Graph application permissions.

Why does the Graph token work but API calls return 401 or 403?

This happens when Graph permissions were added to the Azure app registration but admin consent was not re-granted. Revisit the app registration in the Azure portal and click Grant admin consent again.

Can I summarize a specific past Teams meeting on demand?

The pipeline is subscription-driven rather than per-meeting, but you can use `hermes teams-pipeline fetch --meeting-id <id>` or `--join-web-url` to dry-run transcript resolution for a specific meeting. Note that transcripts may take 2-5 minutes after a meeting ends to become available.