adaptive-card

Generate Teams-compatible Adaptive Card v1.5 JSON files with Action.Submit routing.

1|Updated Aug 22, 2025
One-click install
npx skills add https://github.com/interserver/teams-chat-bot --skill adaptive-card
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: adaptive-card
Source: https://github.com/interserver/teams-chat-bot/tree/main/.claude/skills/adaptive-card
Command: npx skills add https://github.com/interserver/teams-chat-bot --skill adaptive-card

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill removes the manual, error-prone work of hand-authoring Microsoft Teams Adaptive Card JSON by ensuring the card matches the bot’s required routing and input schema.

Core Features & Use Cases

  • Correct Teams routing for submissions: Enforces that every Action.Submit includes data.msteams.type for the botActivityHandler dispatcher.
  • Valid v1.5 card structure: Creates cards using the Adaptive Cards v1.5 envelope and required input components (ChoiceSet and Text).
  • Built-in UX patterns: Supports ColumnSet headers, optional ToggleVisibility sections, and ActionSet layouts consistent with existing bot expectations.
  • Use Case: When someone asks to create a new card (for example, “add card”), the Skill generates a new JSON card file under cards/ and aligns it with the bot’s existing submission handling.

Quick Start

Create an Adaptive Card JSON for Teams by running the instruction: "create adaptive card for adding a ticket" and save it into the cards directory.

Frequently Asked Questions about adaptive-card

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

FAQPage Schema
How do I generate Microsoft Teams Adaptive Card JSON for bot workflows?

To generate Microsoft Teams Adaptive Card JSON, create a new card definition file under the cards/ directory using the Adaptive Cards v1.5 schema, ensuring every Action.Submit includes data.msteams.type for correct botActivityHandler dispatch.

Why does my Action.Submit fail to route in the Teams botActivityHandler?

Action.Submit fails to route in the Teams botActivityHandler when the card JSON omits the required data.msteams.type routing property or lacks activityId injection at send/update time. Enforcing these identifiers ensures correct server-side dispatch.

Can I use ChoiceSet and Text inputs when creating Adaptive Cards v1.5?

Yes, you can use ChoiceSet and Text inputs when creating Adaptive Cards v1.5. The generated card structure supports these required input components alongside ColumnSet headers, optional ToggleVisibility sections, and ActionSet layouts for bot workflows.

What is the best way to structure Teams Adaptive Cards for input forms?

The best way to structure Teams Adaptive Cards for input forms is using the v1.5 envelope with ColumnSet headers and ActionSet layouts. This ensures proper input component rendering and valid Action.Submit routing for bot dispatch.

Do I need to manually inject activityId when sending Adaptive Cards in Teams?

Yes, you need to manually inject activityId at send/update time when sending Adaptive Cards in Teams. The card generation process handles JSON structure and msteams.type routing, but activityId injection is required to satisfy botActivityHandler dispatch.