64 lines
2.2 KiB
Markdown
64 lines
2.2 KiB
Markdown
---
|
|
summary: "Poll sending via gateway + CLI"
|
|
read_when:
|
|
- Adding or modifying poll support
|
|
- Debugging poll sends from the CLI or gateway
|
|
---
|
|
# Polls
|
|
|
|
|
|
## Supported providers
|
|
- WhatsApp (web provider)
|
|
- Discord
|
|
- MS Teams (Adaptive Cards)
|
|
|
|
## CLI
|
|
|
|
```bash
|
|
# WhatsApp
|
|
clawdbot message poll --to +15555550123 \
|
|
--poll-question "Lunch today?" --poll-option "Yes" --poll-option "No" --poll-option "Maybe"
|
|
clawdbot message poll --to 123456789@g.us \
|
|
--poll-question "Meeting time?" --poll-option "10am" --poll-option "2pm" --poll-option "4pm" --poll-multi
|
|
|
|
# Discord
|
|
clawdbot message poll --provider discord --to channel:123456789 \
|
|
--poll-question "Snack?" --poll-option "Pizza" --poll-option "Sushi"
|
|
clawdbot message poll --provider discord --to channel:123456789 \
|
|
--poll-question "Plan?" --poll-option "A" --poll-option "B" --poll-duration-hours 48
|
|
|
|
# MS Teams
|
|
clawdbot message poll --provider msteams --to conversation:19:abc@thread.tacv2 \
|
|
--poll-question "Lunch?" --poll-option "Pizza" --poll-option "Sushi"
|
|
```
|
|
|
|
Options:
|
|
- `--provider`: `whatsapp` (default), `discord`, or `msteams`
|
|
- `--poll-multi`: allow selecting multiple options
|
|
- `--poll-duration-hours`: Discord-only (defaults to 24 when omitted)
|
|
|
|
## Gateway RPC
|
|
|
|
Method: `poll`
|
|
|
|
Params:
|
|
- `to` (string, required)
|
|
- `question` (string, required)
|
|
- `options` (string[], required)
|
|
- `maxSelections` (number, optional)
|
|
- `durationHours` (number, optional)
|
|
- `provider` (string, optional, default: `whatsapp`)
|
|
- `idempotencyKey` (string, required)
|
|
|
|
## Provider differences
|
|
- 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.
|
|
- MS Teams: Adaptive Card polls (Clawdbot-managed). No native poll API; `durationHours` is ignored.
|
|
|
|
## Agent tool (Message)
|
|
Use the `message` tool with `poll` action (`to`, `pollQuestion`, `pollOption`, optional `pollMulti`, `pollDurationHours`, `provider`).
|
|
|
|
Note: Discord has no “pick exactly N” mode; `pollMulti` maps to multi-select.
|
|
Teams polls are rendered as Adaptive Cards and require the gateway to stay online
|
|
to record votes in `~/.clawdbot/msteams-polls.json`.
|