Product Guide
Integrations
PollsLive connects to your existing workflow through a REST API, real-time webhooks, embeds, Zapier automations, and a full OAuth 2.0 flow for SaaS platforms.
Overview
| Integration | Best for | Plan required |
|---|---|---|
| REST API | Programmatic poll creation & results | Pro |
| Webhooks | Real-time event notifications | Pro |
| Embed (iframe) | Polls inside your website | Free |
| Zapier | No-code automation workflows | Free |
| Slack | Share polls & results in channels | Free |
| OAuth 2.0 | SaaS platforms, multi-tenant apps | Pro |
REST API
The PollsLive REST API lets you create polls, record responses, control live sessions, and pull results - all programmatically. Authenticate with a Bearer API key or OAuth 2.0 access token.
curl -X POST https://pollslive.com/api/v1/polls \
-H "Authorization: Bearer $POLLSLIVE_KEY" \
-H "Content-Type: application/json" \
-d '{ "title": "Team sync vote", "content": { "questions": [...] } }'Webhooks
Subscribe to events and receive signed HTTP POST payloads to your endpoint. Events include poll.published, session.started, response.created, and more.
All payloads are HMAC-SHA256 signed using your webhook secret. Verify the signature before processing the event.
Set up webhook endpoints in Studio → Developer API → Webhooks or via the API.
Embed
Embed any published poll in any website using an <iframe> or the lightweight pollslive-embed.js widget. Copy the snippet from Studio → Share → Embed.
<div id="pollslive-poll"></div>
<script
src="https://pollslive.com/pollslive-embed.js"
data-poll="your-slug"
data-target="pollslive-poll"
data-height="480"
async
></script><iframe
src="https://pollslive.com/embed/your-slug"
width="100%" height="480" frameborder="0">
</iframe>The embed is fully responsive and interactive. See also the integrations page.
Zapier
A native PollsLive Zapier app is on the roadmap. Today you can already connect PollsLive to 6000+ apps using Zapier's built-in Webhooks by Zapier:
Triggers (PollsLive → your apps) - point a PollsLive webhook at a “Catch Hook” Zap to fire on:
poll.published,poll.closedresponse.created,vote.createdsession.started,session.ended
Actions (your apps → PollsLive) - use a “Custom Request” action against the REST API with your API key:
- Create a poll from a Google Sheet row, Notion page, Airtable record, etc.
- Publish a poll
- Pull results (CSV export) into Google Sheets
Slack
Share links: paste a poll link into any Slack channel - it unfurls with the poll title. Voters click through without installing an app.
Slash command: install the PollsLive Slack app and use /pollslive to get a quick-create link. Configure:
- Slash command URL →
/api/integrations/slack/command - Events request URL →
/api/integrations/slack/events(handles URL verification)
Requires SLACK_SIGNING_SECRET in your environment. Test locally: SLACK_SIGNING_SECRET=… BASE_URL=http://127.0.0.1:3100 node scripts/test-slack-integration.mjs
Automated alerts: point a PollsLive webhook at a Slack Incoming Webhook (Studio → Integrations), or build on the REST API.
Enterprise (Zoom, Meet, LTI, SSO)
Marketplace manifests and setup guides for Zoom, Google Meet, PowerPoint, Google Slides, LTI 1.3 (Canvas/Moodle), SAML SSO, and Microsoft Teams live at /integrations/enterprise.
- SAML SP metadata →
/api/integrations/saml/metadata - LTI launch URL →
/api/integrations/lti/launch - Zoom manifest →
/api/integrations/zoom/manifest - Teams manifest →
/api/integrations/teams/manifest
OAuth 2.0 (SaaS / platform integrations)
If you're building a SaaS product that integrates PollsLive for your customers, use the OAuth 2.0 Client Credentials flow. Create a separate OAuth client per customer workspace - each client gets its own scoped access token.
POST /api/oauth/token
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials
&client_id=plv_cid_…
&client_secret=plv_cs_…
&scope=polls:read polls:writeTokens expire after 1 hour. Re-request when expiry approaches. No refresh token needed - the client credentials are the long-lived secret.
Still have questions?
Our team is happy to help.