Skip to main content

Run live polls and moderated Q&A in a video meeting or webinar

Live polls and moderated Q&A turn a scheduled video room from a broadcast into a conversation. A poll puts one question with a fixed set of answers in front of everyone in the room and tallies the votes as they arrive; the Q&A queue collects questions from attendees and lets you answer, mark answered, or dismiss each one in front of the room. Both run on the room’s realtime data channel, so a vote or a question appears for every participant the moment it is cast. This guide walks the full happy path: launch a poll, read the live results, close it, moderate the question queue, and run the same steps from the API. When something refuses instead, the troubleshooting page maps every VIDEO_POLL_* and VIDEO_QA_* code to its fix.

Before you start

  • Use a scheduled video room. Polls and Q&A belong to the scheduled-room surface — the same rooms you run meetings and webinars in — and the API addresses them as rooms-scheduled/{id}. Create and schedule the room first, then run engagement while the session is live.
  • You need a host-capable role to moderate. Launching or closing a poll and answering or dismissing a question are moderation actions, limited to the room’s host, co-hosts (participants the host promoted to moderator during the meeting), and organization owners and admins. Everyone else in the room can still vote and ask questions. A caller without a moderation role receives a 403; see Limits and the failure ladder.
  • Plan the question before the meeting. A poll carries one question of up to 280 characters with 2 to 10 answer options, so decide the choices you want to offer ahead of time. Votes reference each option’s id rather than its position, so reordering options never scrambles results.

Launch a poll

Open the room controls in the dashboard and start a poll from the polls panel:
  1. Write the question. One question per poll, up to 280 characters.
  2. Add 2 to 10 options. Keep labels short enough to read at a glance on a phone.
  3. Choose single or multi-select. Multi-select lets a participant pick more than one option in the same vote.
  4. Launch. The poll is broadcast to everyone in the room the moment it goes live.
While the poll is open, votes accumulate per option in real time on your controls. When you are done, close the poll to stop accepting votes; the final tally stays visible in the room. You can launch another poll straight after, but one open question at a time is what participants read best. The same three steps are the API’s shape: launch with POST /api/v1/video/rooms-scheduled/{id}/polls, stop collecting with POST .../polls/close, and read the room’s poll state for the tally. The walkthrough below shows the full requests.

Moderate the Q&A queue

Any participant can submit a question from the Q&A panel; submissions land in a queue visible to the moderation team. For each question you can:
  • Answer it in writing. Your answer is posted to the room under your name.
  • Mark it answered when you answer out loud instead of in writing.
  • Dismiss it to remove it from the queue without an answer, for duplicates and off-topic posts.
Identities are stamped server-side: the room always shows who asked and who answered, and a participant cannot post or answer under someone else’s name.

Q&A versus live chat

The two surfaces serve different jobs:
  • Chat is the free-form stream — quick reactions and side comments from everyone, in the order they arrive.
  • Q&A is the structured queue — questions stay until a moderator resolves them, so a good question asked at minute five is still on your list at minute forty.
They are governed independently. Chat runs through the room’s content policy, which you set per room in block, flag, or log mode, while Q&A is governed by moderator review. If chat messages are refused, that is the policy surface, not Q&A; the chat section of the troubleshooting page covers the VIDEO_CHAT_* codes.

The participant side

Voting and asking need no special role. Every participant in the room sees an open poll, casts a vote (several option ids in a multi-select poll), and can submit questions to the queue. Because the voter and asker identities are stamped by the platform from the signed-in session, results cannot be spoofed by a modified client. A vote that races a poll closing is a normal transient — refetch the room state and re-submit once; the failure ladder below covers it.

Run polls from the API

The poll endpoints live under the scheduled-room prefix. {id} is the scheduled room id, the same num_… identifier the room APIs return, and server-to-server calls authenticate with an API key holding the video:write scope.

Launch

Your client mints the poll_id (a UUID) that ties the launch, the votes, and the close together; retrying with the same poll_id replaces the poll rather than duplicating it.

Vote

Any participant credential can vote. The voter identity is stamped server-side, so the body carries only the poll and the chosen options; a single-select poll sends exactly one option id.

Close

Closing stops vote collection while the final tally stays available to the room.
The full endpoint reference, including the Q&A submission and moderation endpoints, is in the Video API reference.

Limits and the failure ladder

Roles. Launch, close, and Q&A moderation need the host, a co-host, or an organization owner or admin; any other signed-in caller receives a 403 before room state changes. API keys with video:write follow the key’s organization role floor instead. Shapes. One question of up to 280 characters; 2 to 10 options with labels up to 160 characters; a vote carries 1 to 10 option ids; a Q&A question is up to 1,000 characters. Codes. Work refusals in this order:
  1. A 403 on launch or close means the caller lacks a moderation role. Fix the caller; retrying with the same credentials refuses the same way.
  2. VIDEO_POLL_LAUNCH_FAILED means the broadcast itself failed after a clean role check. No room state changed, so retry once after a short backoff with the same poll_id.
  3. VIDEO_POLL_VOTE_FAILED usually means the poll closed between fetch and vote. Refetch the room state, then re-submit once.
  4. VIDEO_POLL_CLOSE_FAILED: fetch the current poll state before retrying; a partially applied close is treated as still open.
If the same code survives about ten minutes of retries, open a ticket with the room id and the request_id from the response meta. The troubleshooting page has the per-code runbook and the escalation checklist.

After the meeting

Polls and Q&A are realtime surfaces: they live on the room’s data channel for the length of the session. There is no stored poll or question archive to reopen afterwards, so if a tally matters beyond the live room, capture it while the session is still open — screenshot the final results, or keep your own record of votes collected through the API. The session recording and the attendance report still cover the meeting itself; video room history lists what a finished session keeps.

See also