---
name: sales-zoho-survey
description: "Zoho Survey platform help — survey/quiz/poll builder in the Zoho suite: 30+ question types, skip and branching logic, multilingual, offline field surveys, collectors, sentiment analysis and cross-tab reports, a paid market-research panel (Buy Responses), webhooks, Deluge trigger functions, and Zoho CRM/Desk/Analytics connectors. Use when Zoho Survey responses aren't being collected, hunting for Zoho Survey API docs that don't exist, webhook data arrives late or never, buying panel responses and needing a cost estimate, skip logic or white label is greyed out by your plan, exporting Zoho Survey responses to a warehouse or CRM, or comparing Zoho Survey vs SurveyMonkey vs Typeform. Do NOT use for cross-tool NPS/CSAT/VoC strategy (use /sales-customer-feedback), picking a validation method for a startup idea (use /sales-idea-validation), or enterprise XM (use /sales-qualtrics)."
argument-hint: "[describe what you need help with in Zoho Survey]"
license: MIT
version: 1.0.0
tags: [sales, surveys, feedback, market-research, platform]
github: "https://github.com/zoho"
---
# Zoho Survey Platform Help

Help the user with Zoho Survey — survey design, distribution, the paid research panel, response analytics, and the (deliberately narrow) automation surface.

## Step 1 — Gather context

If `references/learnings.md` exists, read it first for accumulated platform knowledge.

Ask the user:

1. **What do you need help with?**
   - A) Building a survey (question types, logic, themes, multilingual)
   - B) Distributing it (collectors, email, SMS, QR, offline app, embed)
   - C) Buying responses from the research panel
   - D) Analyzing responses (reports, cross-tabs, sentiment, exports)
   - E) Automation / integrations (webhooks, trigger functions, CRM, Analytics, Zapier)
   - F) Account / billing (plan comparison, response limits)
   - G) Something else — describe it

2. **What's your situation?**
   - A) Setting up Zoho Survey for the first time
   - B) Something isn't working / data looks wrong
   - C) Optimizing an existing survey
   - D) Getting data out into another system
   - E) Evaluating Zoho Survey vs alternatives

3. **What plan are you on?** (Free, Basic, Plus, Pro, Enterprise, not sure)

**If the user's request already provides enough context, skip to the relevant step.** Lead with your best-effort answer, then ask 1-2 clarifying questions at the end.

## Step 2 — Route or answer directly

If the request maps to a specialized skill, route:
- Cross-tool NPS/CSAT/VoC strategy → `/sales-customer-feedback {your question}`
- Choosing how to validate a startup idea → `/sales-idea-validation {your question}`
- SurveyMonkey platform questions → `/sales-surveymonkey {your question}`
- Enterprise XM → `/sales-qualtrics {your question}`
- Survey invitation email deliverability → `/sales-deliverability {your question}`

Otherwise, answer directly using the reference below.

## Step 3 — Zoho Survey platform reference

**Read `references/platform-guide.md`** for the full platform reference — modules, pricing and plan gates, question types, logic, collectors, the research panel, analytics, and integrations.

Answer using only the relevant section. Don't dump the full reference.

**For API, webhook, or trigger-function questions**, also read `references/zoho-survey-api-reference.md` — it documents the one officially published endpoint and the practical data-out alternatives.

## Step 4 — Actionable guidance

You no longer need the full platform guide — focus on the user's specific situation.

1. **State the plan gate first.** Before giving steps, tell the user whether their tier supports the feature — skip logic needs Plus+, integrations/SMS/white label need Pro+, user management needs Enterprise. A correct walkthrough of a greyed-out button wastes their time.
2. **When asked for API docs, say plainly that no comprehensive public REST API reference exists** — only the email-invitation endpoint is published. Do not invent endpoints, and do not send the user hunting. Name the real data-out paths instead: webhooks, Deluge trigger functions, the Zoho Analytics connector, Zoho Flow/Zapier, or manual export.
3. **Warn that webhooks are queue-delayed, not real-time** whenever the user's design depends on instant delivery — budget 1-2+ minutes and never build a synchronous flow on top. **If the user reports a late or missing webhook, say plainly that this is expected platform behavior and not a malfunction** before troubleshooting, then tell them to make the receiver asynchronous (ack fast, enqueue, reconcile later) and to check Sync Status for per-response delivery.
4. **Before any panel purchase, tell the user the survey locks on checkout and must not collect PII** — both are irreversible mistakes after payment.
5. **Step-by-step instructions** — numbered steps to accomplish their goal.
6. **Verification** — how to confirm it works (preview the survey, check webhook Sync Status, send a test invitation).

If you discover a gotcha, workaround, or tip not covered in `references/learnings.md`, append it there with today's date.

## Gotchas

> *Best-effort from research (2026-07)* — review these, especially plan-gated features and pricing, which change.

- **There is no comprehensive public API.** This is the single most common Zoho Survey question and it has no satisfying answer: community threads asking "is there an API doc?" go unanswered by staff, and the help center has no developer section. The **only** officially documented endpoint is the email-invitation trigger. Anyone promising you a full CRUD REST API for surveys and responses is guessing — get data out via webhooks, trigger functions, the Zoho Analytics connector, or Zoho Flow/Zapier instead.
- **Webhooks are not real-time.** Zoho's own guidance says pushing response data out via webhook or trigger function "will not be in real-time" — expect 1-2 minutes or more depending on queue depth. Don't build a synchronous flow (e.g. redirect-then-read) on top of it.
- **Webhooks are POST-only, and headers are for auth only.** No GET/PUT. Piped fields can't be used in the callback. Map responses in the Request Body (form data or JSON) or Query Parameters.
- **Integrations are gated behind Pro.** Zapier, CRM, and Google Sheets connectors are not available on Free/Basic/Plus. Many users discover this after building the survey. SMS distribution and white label are also Pro+.
- **Skip logic needs Plus.** The Free and Basic tiers have no skip logic at all — a branching survey is impossible below Plus.
- **The Free plan caps questions, not just responses.** 10 questions per survey and 100 responses per survey. The question cap bites first on any serious survey.
- **A panel survey can't collect PII, and locks on purchase.** Zoho blocks the Buy Responses flow for surveys collecting names, addresses, or emails, and states "you can't edit or modify the survey once you proceed with the purchase." Proofread before checkout — a typo is permanent for that order.
- **Panel pricing is quote-only.** No published per-response rate. Cost scales with response count × question count × how narrow the targeting is. Quotes exclude taxes. Orders over 1,000 responses require separate collectors.
- **Panel reports lag.** Because responses are purchased and collected in batches, reports won't look real-time — this is expected, not a bug.
- **Analytics filtering thins out on large datasets**, and design control isn't pixel-perfect — the two most consistent reviewer complaints (Capterra, ~453 reviews). If you need popup/in-app surveys fired on scroll depth, exit intent, or user segment, Zoho Survey has no behavioral targeting — that's a genuine reason to look elsewhere.
- **Access tokens live 1 hour.** Refresh tokens are unlimited until revoked. Any invitation-API integration must refresh.

- **Self-improving**: If you discover something not covered here, append it to `references/learnings.md` with today's date.

## Related skills

- `/sales-customer-feedback` — NPS/CSAT/VoC strategy across all tools — survey design, response rates, closed-loop feedback, platform comparison. Install: `npx skills add sales-skills/sales --skill sales-customer-feedback -a claude-code`
- `/sales-idea-validation` — Validating an idea before building — where a paid survey panel does and doesn't count as evidence. Install: `npx skills add sales-skills/sales --skill sales-idea-validation -a claude-code`
- `/sales-surveymonkey` — SurveyMonkey platform help — the self-serve peer with a real REST API v3 + webhooks. Install: `npx skills add sales-skills/sales --skill sales-surveymonkey -a claude-code`
- `/sales-qualtrics` — Qualtrics XM platform help — the enterprise research alternative. Install: `npx skills add sales-skills/sales --skill sales-qualtrics -a claude-code`
- `/sales-do` — Not sure which skill to use? The router matches any sales objective to the right skill. Install: `npx skills add sales-skills/sales --skill sales-do -a claude-code`

## Examples

### Example 1: Hunting for the API

**User**: "I need to pull Zoho Survey responses into BigQuery every night. Where are the API docs?"

**Approach**: Answer the real question first — there is no comprehensive public REST API, and the docs they're looking for don't exist. The help center has no developer section and community threads asking this go unanswered. Then give the four working paths, ranked for their case: (1) the **Zoho Analytics connector** is the closest thing to a supported pipeline — sync responses into Analytics, then export/forward to BigQuery; (2) a **webhook** on response submission POSTing JSON to a Cloud Function that writes to BigQuery — cheapest to build, but warn it's queue-delayed 1-2+ min, which is fine for a nightly load; (3) a **Deluge trigger function** to push to a third-party endpoint; (4) **Zoho Flow/Zapier** (Pro+ only). Recommend the webhook → Cloud Function for a nightly job. Flag that if a documented REST API is a hard requirement, SurveyMonkey (`/sales-surveymonkey`) has REST API v3 and is the better fit — say so rather than forcing Zoho.

### Example 2: Budgeting a panel study

**User**: "I want 500 responses from US women aged 25-40 with household income over $75k to test a product concept. What'll it cost and how do I set it up?"

**Approach**: Set expectations on price — Zoho publishes no per-response rate; cost is quoted from response count × question count × targeting narrowness, and their three filters (country/region, gender+age, household income) are narrow enough to push the rate up. Use the in-app calculator (Launch → Buy Responses → set quantity, incidence rate, country, demographics → Calculate) for a real number; quotes exclude taxes. Then the two irreversible warnings **before** checkout: the survey must not collect PII (names/emails/addresses) or the flow is blocked, and it locks permanently on purchase — proofread every question first. Set the incidence rate honestly if disqualification logic exists. Keep the questionnaire tight since question count is a direct price multiplier. Expect batch-collected, non-real-time reports. Close with the strategic caveat: 500 people saying "I'd buy this" is stated preference, not demand — take the go/no-go to a real behavior test (`/sales-idea-validation`).

### Example 3: Webhook fires late

**User**: "My Zoho Survey webhook sometimes takes minutes to arrive and my app times out waiting for it."

**Approach**: This is expected behavior, not a bug — Zoho states webhook and trigger-function pushes are not real-time and may take 1-2 minutes or more depending on queue. The fix is architectural: make the receiver asynchronous. Never have the respondent-facing flow block on the webhook; accept the POST, enqueue it, and reconcile later. Check **Sync Status** in the webhook config to confirm per-response delivery. If the app truly needs instant confirmation, don't source it from the webhook — read it from the thank-you page redirect or move to a platform with real-time delivery. Also verify the basics: POST-only endpoint, headers used for auth only, and no piped fields in the callback mapping.

## Troubleshooting

### "Responses aren't being collected"

- **Check the collector.** Each distribution link is a separate collector — a closed or deleted collector stops recording while the link may still appear to work. Confirm you're checking the same collector you distributed.
- **Check response restrictions.** If a one-response-per-user restriction is on, repeat respondents are silently blocked. Same for any general restriction (date window, response cap).
- **Check the plan's response limit.** Free is 100 responses *per survey*. Once hit, new responses stop.
- **For panel orders, expect batching.** Purchased responses arrive in batches, so reports lag — wait before assuming collection failed.

### "Skip logic / white label / Zapier is greyed out"

- **Confirm the tier.** Skip logic requires Plus or higher. Complete design customization requires Plus. White label, SMS distribution, and integrations (Zapier, CRM, Google Sheets) require Pro or higher. User management and departments require Enterprise.
- **Don't look for a workaround that doesn't exist.** These are hard plan gates, not settings — upgrading is the only path.

### "OAuth returns 401 / invalid token on the invitation API"

- **Refresh the access token.** Access tokens are valid for exactly 1 hour. Refresh tokens don't expire until revoked — implement refresh rather than pasting a token.
- **Check the scope.** Sending invitations needs `ZohoSurvey.invitation.CREATE`. Read scopes (`ZohoSurvey.survey.READ`, `ZohoSurvey.portal.READ`) won't authorize it.
- **Check the rate limit.** 60 requests per minute per distribution. Batch multiple contacts into one POST via `contactsList` rather than one call per contact.
- **Check the data center.** Zoho account and API hosts are region-specific (`.com`, `.eu`, `.in`, `.com.au`). A token minted in one DC won't work against another.
