Open source poll for Slack

Add to Slack For more information please visit GitHub page Open Poll+ is free and open source app forked from KazuAlex/openpollslack for create a poll in Slack. All features are available for free and unlimited.
This version of Open Poll also includes some additional features such as schedule/recurring poll, allow member to add their own choices, true anonymous votes,
multiple languages, customizable UI, separate configuration for each workspace, Support Slack's Enterprise Grid, Slack Connect.

How to use it ?

Simple poll using model (via Command)

Just type /poll and press Enter 2 times without any parameter
Simple poll

Simple poll using model (via Shortcut)

Bot must be in selected channel if create via Slack Shortcut.
Simple poll shortcut

Simple poll using command

/poll "What's you favourite color ?" "Red" "Green" "Blue" "Yellow"
Simple poll

Anonymous poll

/poll anonymous "What's you favourite color ?" "Red" "Green" "Blue" "Yellow"
Anonymous poll

Limited choice poll

/poll limit 2 "What's you favourite color ?" "Red" "Green" "Blue" "Yellow"
Limited poll

Hidden poll votes

/poll hidden "What's you favourite color ?" "Red" "Green" "Blue" "Yellow"
Hidden poll votes

Anonymous limited choice poll

/poll anonymous limit 2 "What's you favourite color ?" "Red" "Green" "Blue" "Yellow"
Anonymous limited poll

Create simple schedule poll

/poll on 2023-11-15T10:30:00+07:00 "What's your favourite color ?" "Red" "Green" "Blue" "Yellow"
- Time stamp should be in ISO8601 format `YYYY-MM-DDTHH:mm:ss.sssZ`

Create advanced schedule and recurring poll

/poll schedule create [POLL_ID] [TS] [CH_ID] "[CRON_EXP]" [MAX_RUN]
/poll schedule create_force [POLL_ID] [TS] [CH_ID] "[CRON_EXP]" [MAX_RUN]
/poll schedule create 0123456789abcdef01234567 2023-11-18T08:00:00+07:00
/poll schedule create 0123456789abcdef01234567 2023-11-15T10:30:00+07:00 - "0 30 12 15 * *" 12
/poll schedule create 0123456789abcdef01234567 2023-11-15T10:30:00+07:00 C0000000000 "0 30 12 15 * *" 12
- Bot MUST in the channel
- Only one schedule for each poll, reschedule will replace previous one
- You can get Poll ID from your exist poll > `Menu` > `Command Info.`
- `POLL_ID` = ID of poll to schedule.
- `TS` = Time stamp of first run (ISO8601 format `YYYY-MM-DDTHH:mm:ss.sssZ`)
- `CH_ID` = (Optional) channel ID to post the poll, set to `-` to post to orginal channel that poll was created
- `CRON_EXP` = (Optional) empty for run once, or put "[cron expression]" in UTC (with "")
- `MAX_RUN` = (Optional) do not set to run maximum time that server allows (`schedule_max_run` times), After Run Counter greater than this number; schedule will disable itself.
Supported cron expression format
* * * * *
┬ ┬ ┬ ┬ ┬
│ │ │ │ |
│ │ │ │ └ day of week (0 - 7, 1L - 7L) (0 or 7 is Sun)
│ │ │ └───── month (1 - 12)
│ │ └────────── day of month (1 - 31, L)
│ └─────────────── hour (0 - 23)
└──────────────────── minute (0 - 59)

List/Delete Schedule/Recurring Poll

/poll schedule list_self
/poll schedule list_all
/poll schedule delete [POLL_ID]
/poll schedule delete_force [POLL_ID]
/poll schedule delete_done

Allow choices add by others

/poll add-choice "What's you favourite color ?" "Red" "Green" "Blue" "Yellow"

Auto select channel, Multiple languages support


Auto detect if bot is in channel

Shortcut > Create Poll

Customizable for each Slack Team

/poll config
/poll config read
/poll config write app_lang [zh_tw/zh_cn/th/ru/kr/jp/fr/fi/es/en/de]
/poll config write app_allow_dm [true/false]
/poll config write create_via_cmd_only [true/false]
/poll config write app_lang_user_selectable [true/false]
/poll config write menu_at_the_end [true/false]
/poll config write compact_ui [true/false]
/poll config write show_divider [true/false]
/poll config write show_help_link [true/false]
/poll config write show_command_info [true/false]
/poll config write true_anonymous [true/false]
/poll config write add_number_emoji_to_choice [true/false]
/poll config write add_number_emoji_to_choice_btn [true/false]
/poll config write delete_data_on_poll_delete [true/false]

Customizable for each Slack Team (Cond.)

/poll config
Parameter Description
app_lang Set app language
app_allow_dm Allow app to send direct message to user (When error or schedule occure)
create_via_cmd_only Disable poll creation by shortcut
app_lang_user_selectable Allow users to select language for each poll
menu_at_the_end Move menu to the end of the poll
compact_ui Make poll use less space
show_divider Show divider between each choice
show_help_link Show help link and support email at the end of every poll
show_command_info Show command used to recreate poll
true_anonymous Poller will not be allowed to view voter names in anonymous polls
add_number_emoji_to_choice Add number emoji to choice
add_number_emoji_to_choice_btn Add number emoji to vote button
delete_data_on_poll_delete When poller requests to delete the poll, all data in the database that refers to that poll will be deleted.
(All features that require those deleted data will stop working)

UI Configurable - Desktop View

/poll config

UI Configurable - Mobile View

/poll config

UI Configurable - Menu location

/poll config

UI Configurable - Emoji

/poll config


Q: I got unapproved_scope error when adding app.
A: Please uninstall app and reinstall.

Need help ?

Please use Github issues if you have any question or issue with the app. E-Mail: openpollplus -at-
openpollplus -at-
Github issues