{
  "title": "MS Teams",
  "content": "openclaw message poll --channel msteams --target conversation:19:abc@thread.tacv2 \\\n  --poll-question \"Lunch?\" --poll-option \"Pizza\" --poll-option \"Sushi\"\n```\n\n* `--channel`: `whatsapp` (default), `discord`, or `msteams`\n* `--poll-multi`: allow selecting multiple options\n* `--poll-duration-hours`: Discord-only (defaults to 24 when omitted)\n\n* `to` (string, required)\n* `question` (string, required)\n* `options` (string\\[], required)\n* `maxSelections` (number, optional)\n* `durationHours` (number, optional)\n* `channel` (string, optional, default: `whatsapp`)\n* `idempotencyKey` (string, required)\n\n## Channel differences\n\n* WhatsApp: 2-12 options, `maxSelections` must be within option count, ignores `durationHours`.\n* Discord: 2-10 options, `durationHours` clamped to 1-768 hours (default 24). `maxSelections > 1` enables multi-select; Discord does not support a strict selection count.\n* MS Teams: Adaptive Card polls (OpenClaw-managed). No native poll API; `durationHours` is ignored.\n\n## Agent tool (Message)\n\nUse the `message` tool with `poll` action (`to`, `pollQuestion`, `pollOption`, optional `pollMulti`, `pollDurationHours`, `channel`).\n\nNote: Discord has no “pick exactly N” mode; `pollMulti` maps to multi-select.\nTeams polls are rendered as Adaptive Cards and require the gateway to stay online\nto record votes in `~/.openclaw/msteams-polls.json`.",
  "code_samples": [],
  "headings": [
    {
      "level": "h2",
      "text": "Gateway RPC",
      "id": "gateway-rpc"
    },
    {
      "level": "h2",
      "text": "Channel differences",
      "id": "channel-differences"
    },
    {
      "level": "h2",
      "text": "Agent tool (Message)",
      "id": "agent-tool-(message)"
    }
  ],
  "url": "llms-txt#ms-teams",
  "links": []
}