---
title: "Zigpoll Integration"
description: "Zigpoll is an on-site and post-purchase survey widget best known as a Shopify app. Agents manage surveys, questions and participants, read responses, captured emails and AI insights, run email and SMS campaigns, set Action Logic, and react through signed webhooks."
url: https://flowrunner.ai/integrations/zigpoll
date_modified: 2026-09-04T19:22:58-07:00
---

# Zigpoll

[Forms](https://flowrunner.ai/integrations/category/documents-forms)

Zigpoll is an on-site and post-purchase survey widget best known as a Shopify app. Agents manage surveys, questions and participants, read responses, captured emails and AI insights, run email and SMS campaigns, set Action Logic, and react through signed webhooks.

[Verified](https://flowrunner.ai/integrations/verified "What does verified mean?") · 1 trigger · 35 actions · API key · available

[Zigpoll website](https://v1.zigpoll.com/) · [Platform Documentation](https://apidocs.zigpoll.com) · Capability data verified 2026-08-26

1.  A merchandising request asks for a new post purchase follow up rule on a live survey
2.  Get Action Logic returns the rules running now, plus the actions, operators and answer values valid on this survey
3.  Agent composes the new row using operators the survey itself reports for that question, not assumed ones
4.  Agent diffs the composed array against the live rows to confirm nothing currently running is being dropped
5.  The complete array, kept rows and new row together, goes to the survey owner
6.  The owner approves, and only then does the agent call Set Action Logic

## What This Integration Enables

Zigpoll is a merchandising instrument more than a form tool. It asks one question at the moment a shopper is most likely to answer it, on site or immediately after purchase, and the API is shaped around getting the answer back as a number rather than as a pile of rows. Device, location and metadata breakdowns are computed on Zigpoll's side, a date window on the question listing recomputes the vote distribution for that window, and the AI insight summaries hand back themed digests of the free text. A flow can report on thousands of responses without downloading one.

It is worth being clear about the boundary, because Zigpoll lives mostly inside Shopify and the assumption is easy to make. This connector reaches everything Zigpoll stores and nothing Shopify does. There is no route here that reads an order, resolves a customer or mints a discount code. Where the two meet is response metadata: a Shopify installed survey attaches order and customer context to each response, so a flow reads Zigpoll's recorded copy of it and pairs with the [Shopify](https://flowrunner.ai/integrations/shopify) connector when live store data is what the decision needs. Every Zigpoll operation is built and verified against the vendor's own API, and FlowRunner's [human-in-the-loop](https://flowrunner.ai/concepts/human-in-the-loop) discipline covers the places where a write reaches shoppers or silently changes what a live survey does.

### Without FlowRunner

**Answers downloaded to be counted**: Reporting means pulling every response and rebuilding the tally in a spreadsheet

**Combinations counted as options**: A multi select question is tallied from its display string, so five options turn into dozens of invented categories

**Live rules edited blind**: Nobody is certain which automations a survey is running until one of them stops happening

### With FlowRunner

**Aggregates computed at the source**: Device, location, metadata and trend breakdowns come back already computed, with truncation flagged rather than hidden

**Options counted as options**: Distributions are read from the answers array, which lists each selected component with its own handle and title

**Rule changes diffed before they land**: The live rule set is read, the new row added to it, and a person sees the whole array before anything is written

## Use Case Scenarios

### Adding a rule without switching off the ones already running

Action Logic runs per survey as responses arrive: when every rule in a row passes, every action in that row fires. Merchandising wants one more row, sending a discount follow up when a specific answer appears. The agent calls Get Action Logic first, which returns both the live rows and the survey's own vocabulary of valid actions, operators and answer values, then composes the new row against that vocabulary rather than a guess. It assembles the complete array, keeps every existing row, and shows the survey owner the before and after. Only after approval does Set Action Logic run.

### An attribution read that never downloads a response

Weekly, the agent calls Get Metadata Breakdown with no key to discover which metadata keys the survey's responses actually carry and how many responses carry each, then calls it again with utm\_source and a question identifier so each source is split by the answers those respondents gave, counted per selected option. Get Response Trends adds the daily shape and List AI Insights adds a themed digest of the open ended answers. Before anything is reported, the agent checks the truncated flags, because a top 25 location list is a display limit and not an absence of respondents. The result lands in [Google Sheets](https://flowrunner.ai/integrations/google-sheets) and as a summary in [Slack](https://flowrunner.ai/integrations/slack).

### Routing a response the moment it lands, and knowing when to stop

On Survey Response delivers a verified, signed payload as soon as a respondent finishes. The agent reads the answers, pulls the address from List Captured Emails where one was given, and adds the shopper to the right segment in [Klaviyo](https://flowrunner.ai/integrations/klaviyo). Where the answer indicates a problem, the flow needs context Zigpoll does not hold: order value, fulfillment state, previous returns. The agent fetches that through the Shopify connector, and where the picture is ambiguous it hands the case to the customer experience owner with both halves attached rather than choosing a remedy on its own.

## Human-in-Loop Highlight

Set Action Logic replaces a survey's complete rule array. Zigpoll refuses anything the delivery path would silently skip, so an unknown action or a question identifier from another survey is rejected outright. What it does not reject is a shorter array. Omit a row and that automation simply stops running, with no error, no warning and nothing in the response to say a rule used to exist. Compare Reorder Questions on the same connector, where the vendor deliberately rejects a partial list because dropping the omitted questions could not be undone. Action Logic has no such guard, and it is the surface where an omission is least visible, because the symptom is a follow up that quietly stops going out. So the agent reads first and never writes a bare row. It posts: "Set Action Logic on Post Purchase NPS. Currently 4 rows: 2 tag actions, 1 Klaviyo event, 1 webhook to the returns endpoint. The composed array keeps all 4 and adds a fifth for detractors mentioning delivery. Nothing is dropped. Write it?" The composition, the validation and the diff are the agent's work. Confirming that the four survivors really are the four the team wants is not.

Agent processes routinely

Detects exception requiring judgment

Clear match Continues automatically

Ambiguous Routes to human via preferred channel

Human decides

Agent resumes with decision

## Agent Capabilities

35 actions

### Account

3

-   **Get Current User** Returns the user account that owns the API key, including the Zigpoll accounts the key can reach. The right first call to confirm a connection works and to discover which accounts are available.
-   **List Accounts** Lists every account the key can reach, each with its plan, its submission, email and SMS limits, and its lifetime counters. An account is the container for surveys, so its identifier starts most flows.
-   **Get Account** Retrieves one account with its plan, limits and usage counters. The three counters measure different things: responses (one per question answered), submissions (one per survey taken), and open ended free text answers only. Reading the wrong one gives a number that is correct but not the one you meant.

### Surveys

7

-   **List Surveys** Lists every survey on an account with status, visibility, page targeting rules, question identifiers and engagement counters. Archived surveys are included, so check the archived and visible flags before acting on a result.
-   **Get Survey** Retrieves one survey with its status, targeting rules, ordered question identifiers and its full counter set: renders, presentations, opens, engagements, votes, submissions, completions and closes. Read it before an update.
-   **Create Survey** Creates a survey on an account. It is created hidden and empty, so add questions and then publish it with an update. Dry Run returns the fully defaulted survey for review without saving it.
-   **Update Survey** Updates a survey, changing only the fields sent. Setting it visible publishes it, which the vendor refuses while the survey has no questions or is archived. Settings and display settings replace their whole object, so read the survey first and send the complete set.
-   **Duplicate Survey** Creates a clean copy of a survey, keeping its questions and dropping all response data. Useful for starting a fresh measurement period, and for getting a clean copy after a synthetic research run.
-   **Reorder Questions** Sets the order questions appear in. The list must be the complete ordered set for that survey. The vendor rejects a partial list rather than applying it, because silently dropping the omitted questions could not be undone.
-   **Commit Staged Object** Saves a survey or question previously built with Dry Run, inserting the object exactly as the dry run returned it with no further defaulting. For a question, pass the position the dry run reported.

### Questions

4

-   **List Questions** Lists a survey's questions in order with their answer options and vote counts. Pass a created after or created before date and the vendor recomputes those counts from responses inside that window, which gives a date scoped distribution with no response download at all.
-   **Get Question** Retrieves one question with its options and vote counts. For a matrix question the answers array holds the shared rating columns and a separate rows array gives one entry per sub question with its own per column counts.
-   **Create Question** Adds a question to a survey. Every Zigpoll question type is supported, including matrix, ranking, form, file upload and phone capture. Dry Run previews the fully defaulted question without saving it.
-   **Update Question** Updates a question, changing only the fields sent. Settings replaces the whole settings object, and the vendor clears a field when it is set to minus one rather than to an empty value.

### Responses

4

-   **List Responses** Lists responses for exactly one of an account, a survey or a question, newest first and cursor paginated. Read distributions from the answers array rather than the response string, because for a multi select question that string counts combinations rather than options.
-   **List Participants** Lists the people who interacted with a survey, carrying their geolocation, user agent, the surveys and questions they touched, a condensed list of their answers and any emails tracked against them.
-   **List Captured Emails** Lists the email addresses respondents gave, each linked back to the survey, question and participant it came from, which is what makes them usable for a follow up campaign or a CRM sync.
-   **List AI Insights** Lists the insight summaries Zigpoll generates from open ended answers, each carrying themed items with a title and description. A ready made digest of what respondents said without reading every free text answer.

### Analytics

4

-   **Get Device Breakdown** Returns how respondents split across device type, browser and operating system, aggregated by Zigpoll rather than computed from downloaded responses. Check the truncated flag before reporting a total.
-   **Get Location Breakdown** Returns the country, region and city distribution of respondents from participant geolocation. Each list is a top 25 with its own truncated flag, so a display limit is never mistaken for an absence of respondents in a place.
-   **Get Metadata Breakdown** Breaks response metadata down server side: source, referrer, landing page and any custom keys. Call it without a key to discover which keys exist and how many responses carry each, then with a key for that key's top values. Adding a question identifier splits each value by the answers those respondents gave.
-   **Get Response Trends** Returns response volume bucketed by day over a trailing window. The unit depends on scope: with a question identifier the buckets are per answer option, while with a survey identifier the unit is distinct responding participants per day.

### Distribution

3

-   **Send Email Campaign** Sends a survey invitation by email to one or many recipients. The vendor enforces the plan email limit, runs spam detection and validates bulk sends, so a rejection is usually a plan or content problem rather than a bad address. Display settings override the survey's saved subject, colors and content for this send only.
-   **Send SMS Campaign** Sends a survey invitation by SMS to one or many numbers, which the vendor normalizes and deduplicates. Plan SMS limits, spam detection and bulk send validation all apply, and the message text can be overridden for this send only.
-   **Generate Survey Link** Creates a unique, trackable link. Every call creates a new activity record and returns a fresh URL, so generate one per respondent rather than reusing a link, and attach metadata to tie the eventual response back to an order, a customer or a campaign.

### Translations

2

-   **Get Survey Translations** Returns a survey's translation state: the languages it covers with per language counts, the translatable widget button keys, and the source content of every question with its identifiers and handles. Call it before writing, because it is what supplies the keys.
-   **Update Survey Translations** Writes translations for one language, leaving every other language untouched. Deep merges by default, so send only what changed and set a key to null to delete it. Replace layer swaps the whole layer and remove language deletes it.

### Action Logic

2

-   **Get Action Logic** Returns a survey's Action Logic rules along with everything needed to write new ones: the actions the account can use now, the actions available once a named integration is connected, the survey level operators, and each question with the operators and answer values valid against it.
-   **Set Action Logic** Replaces a survey's complete Action Logic array. Read the current rules first and include every row worth keeping, because an omitted row stops running with no error raised. This is the operation this page's human gate exists for.

### Webhooks

3

-   **List Webhooks** Lists the signed webhooks registered against a survey with key, endpoint and delivery rule. The signing secret is never returned here.
-   **Create Webhook** Registers a signed webhook delivering a survey's responses to your own endpoint. The account signing secret is returned once, in this response and by no other call, so store it at creation or verification becomes impossible for that webhook's lifetime.
-   **Delete Webhook** Stops deliveries for one signed webhook and cancels any retries still queued for it. The key is scoped to the survey it was registered on.

### Synthetic Research

3

-   **Start Synthetic Research** Starts AI generated survey responses using weighted demographic personas. The survey must have been created as a synthetic research survey, and the persona percentages must add up to one hundred. Generation runs asynchronously, so this returns before it finishes.
-   **Get Synthetic Research Status** Returns the state and progress of a run: how many completions were requested, how many are done, when it started and finished, and the reason if it stopped early.
-   **Cancel Synthetic Research** Stops a run that is still generating. Responses already generated are kept on the survey rather than rolled back, so duplicate the survey when a clean copy is needed.

## Triggers

1 triggers

### Event Triggers

1

-   **On Survey Response** Fires when someone responds to a Zigpoll survey. Every delivery is verified against the account signing secret Zigpoll returns when the webhook is registered, so an unsigned or altered request is declined. Choose only completed surveys to hear from respondents who reached the end, or every submission to hear from partial responses too. Deliveries are batched per respondent rather than per question, and delivery is at least once, so deduplicate on the delivery identifier when the downstream work is not idempotent.

## Frequently Asked Questions

### What can FlowRunner do with Zigpoll?

FlowRunner agents can run Get Current User, List Accounts, and Get Account in Zigpoll, plus 32 more actions.

### Does connecting Zigpoll to FlowRunner require OAuth?

No. Zigpoll connects to FlowRunner with an API key, no OAuth flow required.

### Can Zigpoll trigger a FlowRunner workflow automatically?

Yes. Zigpoll supports 1 trigger that can start a FlowRunner workflow automatically.

**Work at Zigpoll?** This integration exposes Zigpoll to AI agents on every FlowRunner plan, including through MCP, at no cost to you. [See what FlowRunner offers integration partners](https://flowrunner.ai/integrations/partners), including how to keep this page current.

---
Markdown version of https://flowrunner.ai/integrations/zigpoll. Site index: https://flowrunner.ai/llms.txt
