2026-01-06 04:43:35 +00:00
---
summary: "Poll sending via gateway + CLI"
read_when:
- Adding or modifying poll support
- Debugging poll sends from the CLI or gateway
2026-01-31 16:04:03 -05:00
title: "Polls"
2026-01-06 04:43:35 +00:00
---
2026-01-31 21:13:13 +09:00
# Polls
2026-01-06 04:43:35 +00:00
2026-01-13 06:51:20 +00:00
## Supported channels
2026-01-31 21:13:13 +09:00
2026-01-13 06:51:20 +00:00
- WhatsApp (web channel)
2026-01-06 04:43:35 +00:00
- Discord
2026-01-09 09:56:36 +01:00
- MS Teams (Adaptive Cards)
2026-01-06 04:43:35 +00:00
## CLI
```bash
# WhatsApp
2026-01-30 03:15:10 +01:00
openclaw message poll --target +15555550123 \
2026-01-09 08:27:17 +01:00
--poll-question "Lunch today?" --poll-option "Yes" --poll-option "No" --poll-option "Maybe"
2026-01-30 03:15:10 +01:00
openclaw message poll --target 123456789@g .us \
2026-01-09 08:27:17 +01:00
--poll-question "Meeting time?" --poll-option "10am" --poll-option "2pm" --poll-option "4pm" --poll-multi
2026-01-06 04:43:35 +00:00
# Discord
2026-01-30 03:15:10 +01:00
openclaw message poll --channel discord --target channel:123456789 \
2026-01-09 08:27:17 +01:00
--poll-question "Snack?" --poll-option "Pizza" --poll-option "Sushi"
2026-01-30 03:15:10 +01:00
openclaw message poll --channel discord --target channel:123456789 \
2026-01-09 08:27:17 +01:00
--poll-question "Plan?" --poll-option "A" --poll-option "B" --poll-duration-hours 48
2026-01-09 09:56:36 +01:00
# MS Teams
2026-01-30 03:15:10 +01:00
openclaw message poll --channel msteams --target conversation:19:abc@thread .tacv2 \
2026-01-09 09:56:36 +01:00
--poll-question "Lunch?" --poll-option "Pizza" --poll-option "Sushi"
2026-01-06 04:43:35 +00:00
```
Options:
2026-01-31 21:13:13 +09:00
2026-01-13 06:51:20 +00:00
- `--channel` : `whatsapp` (default), `discord` , or `msteams`
2026-01-09 08:27:17 +01:00
- `--poll-multi` : allow selecting multiple options
- `--poll-duration-hours` : Discord-only (defaults to 24 when omitted)
2026-01-06 04:43:35 +00:00
## Gateway RPC
Method: `poll`
Params:
2026-01-31 21:13:13 +09:00
2026-01-06 04:43:35 +00:00
- `to` (string, required)
- `question` (string, required)
- `options` (string[], required)
- `maxSelections` (number, optional)
- `durationHours` (number, optional)
2026-01-13 06:51:20 +00:00
- `channel` (string, optional, default: `whatsapp` )
2026-01-06 04:43:35 +00:00
- `idempotencyKey` (string, required)
2026-01-13 06:51:20 +00:00
## Channel differences
2026-01-31 21:13:13 +09:00
2026-01-06 04:43:35 +00:00
- WhatsApp: 2-12 options, `maxSelections` must be within option count, ignores `durationHours` .
- 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.
2026-01-30 03:15:10 +01:00
- MS Teams: Adaptive Card polls (OpenClaw-managed). No native poll API; `durationHours` is ignored.
2026-01-06 04:43:35 +00:00
2026-01-09 06:43:40 +01:00
## Agent tool (Message)
2026-01-31 21:13:13 +09:00
2026-01-13 06:51:20 +00:00
Use the `message` tool with `poll` action (`to` , `pollQuestion` , `pollOption` , optional `pollMulti` , `pollDurationHours` , `channel` ).
2026-01-09 08:27:17 +01:00
Note: Discord has no “pick exactly N” mode; `pollMulti` maps to multi-select.
2026-01-09 09:56:36 +01:00
Teams polls are rendered as Adaptive Cards and require the gateway to stay online
2026-01-30 03:15:10 +01:00
to record votes in `~/.openclaw/msteams-polls.json` .