Skip to content

dyaskur/google-chat-poll

Absolute Poll - Google Chat Poll Bot

Github Action Coverage Status Quality Gate Status Security Rating Maintainability Rating

A Google Chat add-on for creating polls and making quick decisions within Google Chat. Built with TypeScript and deployed to Google Cloud Functions.

Installed over 1 million times — the #1 poll app on the Google Workspace Marketplace.

Google Workspace Marketplace badge

Landing page: https://absolute-poll.yaskur.com/

Screenshots

Create poll form Vote poll message

Features

  • Create polls with multiple choices
  • Single or multiple choice voting (configurable vote limit)
  • Anonymous voting option
  • Add more options after poll is created
  • Close polls manually or on a schedule with auto-close
  • Reminder notifications before auto-close
  • Permission control (creator-only or anyone can close)
  • No database required — poll state is stored directly in the chat message

Todo

  • Duplicate Poll
  • Save state to database
  • Schedule poll
  • Deno or Cloudflare worker support

Getting Started

Prerequisites

  • Node.js 22+
  • Yarn
  • Google Cloud SDK (for deployment)

Installation

yarn install

Development

yarn start        # Start local dev server via functions-framework
yarn build        # Compile TypeScript
yarn test         # Run tests with coverage
yarn eslint .     # Lint

Deployment

Create a .env.yaml file with:

FUNCTION_REGION: asia-southeast1
GCP_PROJECT: your-project-id
QUEUE_NAME: your-queue-name
yarn deploy       # Build + deploy to GCP with env vars from .env.yaml
yarn release      # Build + deploy to GCP (production, uses env vars already set in GCP)

Limitations

  • Since poll state is stored in the chat message, there is a maximum data size limit. See this SO question for details.
  • Currently only tested on GCP Cloud Functions.

Tips

You can test the JSON files in the tests/json folder at https://gw-card-builder.web.app/ to preview the card output.

License

MIT