SurveyMonkey × Metabase

How to build SurveyMonkey dashboards in Metabase

SurveyMonkey is one of the most widely used survey platforms, covering everything from quick polls to programmatic NPS and CSAT programs. Metabase is where you turn those customer signals into shared, trustworthy dashboards. This guide covers two complementary paths: a lightweight MCP + CLI route that pulls live data with the SurveyMonkey MCP server and loads a CSV into Metabase with the Metabase CLI, and a durable pipeline route that syncs SurveyMonkey data into a database so you can build dashboards anyone can read.

Heads up: Metabase connects to databases and warehouses — it does not ship a native SurveyMonkey connector, and a BI warehouse is the wrong home for raw event or session streams. Sync entities and aggregates — requests, responses, votes, daily usage rollups — and leave the raw firehose in SurveyMonkey.

How do you connect SurveyMonkey to Metabase?

Most teams combine both routes: use MCP and CLI uploads for a fast first pass, then move recurring product reporting to a warehouse-backed model.

1 · MCP + CLI route (AI-assisted)

Live data in, quick analysis out

Pair the SurveyMonkey MCP server with the Metabase CLI. Use MCP for live lookups, write a scoped result to CSV, then load it into Metabase as a ready-to-query table and model.

Best for
  • Quick lookups such as "show me survey performance and completion"
  • Loading a SurveyMonkey export into Metabase in seconds
  • Spot-checks and one-off analyses without a warehouse
Trade-offs
  • Great for exploration, not governed recurring reporting
  • Use read-only/scoped credentials wherever the MCP server supports them
  • CSV uploads are snapshots — refresh or move to the pipeline for history
2 · Pipeline route (warehouse-backed)

Durable dashboards with history

Sync SurveyMonkey data into a database or warehouse with a connector, native export, or API pipeline, then point Metabase at it.

Best for
  • SurveyMonkey reporting that product leadership depends on
  • Joining SurveyMonkey data with CRM, support, product analytics, or revenue data
  • Long-run trends for survey performance and completion and response rate by collector and channel
Trade-offs
  • You own the refresh schedule and the modeling layer
  • Sync entities and rollups — not raw event or session firehoses
  • Metric definitions must be consistent across teams and tools

What can you analyze from SurveyMonkey data in Metabase?

  • Survey performance and completion — built from survey responses and the related surveys and pages, collectors, questions and answers data your sync exposes.
  • Response rate by collector and channel — built from survey responses and the related surveys and pages, collectors, questions and answers data your sync exposes.
  • NPS and CSAT trend from recurring surveys — built from survey responses and the related surveys and pages, collectors, questions and answers data your sync exposes.
  • Drop-off by question — built from survey responses and the related surveys and pages, collectors, questions and answers data your sync exposes.
  • Response volume by audience segment — built from survey responses and the related surveys and pages, collectors, questions and answers data your sync exposes.

Which SurveyMonkey dashboards should you build in Metabase?

For: Research, product ops

Survey performance

Whether surveys reach people and get finished.

  • Responses per survey per week (line)
  • Response rate by channel (bar)
  • Completion rate by survey (bar)
  • Median time to complete (number)
For: PMs, CX leads

NPS and CSAT program

The headline experience scores, trended honestly.

  • NPS trend by month (line)
  • Promoters, passives, detractors (stacked bar)
  • CSAT by touchpoint (bar)
  • Response volume behind each score (line)
For: Research

Question health

Where respondents drop off or answer poorly.

  • Drop-off by question position (bar)
  • Skip rate by question (table)
  • Open-text answer rate (line)
  • Suspiciously fast completions (table)
For: Leadership

Segment insight

How scores differ across the customers you care about.

  • NPS by plan or segment (bar)
  • Score by customer tenure cohort (line)
  • Verbatim theme counts by segment (table)
  • Survey coverage of active customers (number)

How do you use the SurveyMonkey MCP server with the Metabase CLI?

Pair the SurveyMonkey MCP server with the Metabase CLI for fast, hands-on analysis. MCP is useful for scoped lookups and summarized exports; the Metabase CLI's upload command loads CSV data into Metabase and creates a ready-to-query table and model.

Example workflow

  • Ask the MCP server for response-level exports for one survey, with started and submitted timestamps and completion status.
  • Export the result as CSV, keeping stable IDs, statuses, segments, and timestamps.
  • Run mb upload csv to load it into Metabase as a table and model, then build questions and dashboards on top.

Be honest about the limits

  • MCP lookups are excellent for exploration, not scheduled reporting.
  • A CSV upload is a snapshot; refresh it with mb upload replace or move to the pipeline for real history.
  • Invitation or view counts alongside responses are required for true response and completion rates.
  • mb upload csv needs an uploads database configured under Admin → Settings → Uploads.

How do you set up SurveyMonkey MCP and the Metabase CLI?

SurveyMonkey MCP serverofficial

Transport
Hosted remote MCP via Streamable HTTP
Auth
OAuth through SurveyMonkey
Best for
Live scoped lookup and export

Metabase CLIofficial

Install
npm install -g @metabase/cli
Auth
mb auth login
Load data
mb upload csv --file data.csv
Requires
An uploads database (Admin → Settings → Uploads)
MCPExample MCP client config
{
  "mcpServers": {
    "surveymonkey": {
      "url": "https://mcp.surveymonkey.com/mcp"
    }
  }
}

The server is vendor-hosted but thinly documented — there's no first-party docs page yet, so set it up through your client's remote-server flow and sign in with OAuth. Expect the API's plan gates to apply: full response access needs a paid plan, and free accounts are capped at 25 responses per survey via the API. Endpoint verified July 2026.

TerminalLoad a SurveyMonkey CSV with the Metabase CLI
# Install the Metabase CLI
npm install -g @metabase/cli

# Log in (opens your browser; requires Metabase v62+)
mb auth login --url https://your-metabase.example.com

# Load a survey-responses export — creates a table AND a model
mb upload csv --file surveymonkey-survey-responses.csv --collection root

# Refresh that same table later from a new export
mb upload replace <table-id> --file surveymonkey-survey-responses.csv

Can you generate a SurveyMonkey dashboard with AI?

Yes. Use the prompt below with any assistant that can run the SurveyMonkey MCP server and the Metabase CLI. It works end to end: if SurveyMonkey tables already exist in Metabase it analyzes those; otherwise it pulls scoped, summarized data over MCP, loads it with mb upload csv, then builds the dashboard and caveats any metric that needs missing history.

Prompt for creating a SurveyMonkey Survey Overview dashboard
Create a polished Metabase dashboard for SurveyMonkey survey analytics.
Work end to end: get the data into Metabase if it isn't there yet, then build.

Goal: Help product teams understand response and completion rates, NPS and CSAT trends, question health, and segment differences from SurveyMonkey data.

Step 1 — Find or load the data:
- First, check what already exists in Metabase (search for surveymonkey tables and
  models). If durable SurveyMonkey data is already present — synced from a warehouse
  or uploaded earlier — use it and skip to Step 2.
- If nothing is there, pull a scoped, summarized export with the SurveyMonkey MCP server:
  survey responses, plus surveys and pages, collectors, questions and answers.
  Prefer aggregated or rollup views over raw events. Write each result to a CSV,
  then load it with the Metabase CLI — run "mb upload csv --file <export>.csv" so
  each upload creates a table and a ready-to-query model. Use "mb upload replace
  <table-id> --file <export>.csv" to refresh an existing table instead of creating
  duplicates.

Step 2 — Inspect before querying:
Do not assume exact table or column names. Inspect available fields, statuses,
segments, and timestamps, and whether history exists before creating duration
or trend cards.

Important:
- Build on whatever data is present; don't claim Metabase connects natively to
  SurveyMonkey — it reads a database or CLI-uploaded tables.
- Never load raw event or session streams into Metabase; use rollups, entity
  tables, and response- or request-grain data.
- Compute NPS as % promoters (9-10) minus % detractors (0-6) on the 0-10 scale,
  and always show response volume next to the score.
- Only compute durations (time to close, time to complete) when the required
  timestamps exist.
- Exclude internal, test, and anonymous-preview activity from headline cards,
  and segment by plan or customer segment where the field exists.
- A single CSV is a point-in-time snapshot: only build trend cards if there is a
  usable date column or multiple periods have been uploaded.

Dashboard title: SurveyMonkey Survey Overview

Sections:
1. Executive summary: Responses last 30 days; Response rate; Completion
   rate; Current NPS; Current CSAT.
2. Performance: Responses by survey and week; response rate by channel.
3. Scores: NPS and CSAT trends with response volume; promoter/passive/
   detractor distribution; scores by segment.
4. Question health: Drop-off by question position; skip rates.
5. Verbatims: Open-text volume and themes where categorized.

Filters: Date range, Product area, Segment, Status, Survey or Feature.

Output: Build the dashboard if you have permission; otherwise provide the exact
questions, SQL, model definitions, and layout. Include caveats for any metric
that cannot be calculated from the available data.

How do you sync SurveyMonkey data into a database or warehouse?

For dashboards that need history and reliability, land SurveyMonkey data in a database first, then connect Metabase to that database.

Connector options

  • Managed ETL or native export — use a connector or the vendor's own warehouse sync when one covers the objects you need.
  • Custom pipeline — use the SurveyMonkey API v3 for control over objects, fields, and refresh cadence.
  • MCP + CSV — use this for quick exploration and one-off slices.

Sync surveys, collectors, and responses with Fivetran's SurveyMonkey connector or the community-supported Airbyte source — response data needs a paid plan, the same gate as the v3 API's response endpoints (free accounts stop at 25 responses per survey).

Notes

  • Decide the grain first — request, response, or daily rollup — it drives every trend card and the warehouse bill.
  • Land raw entity tables first, then build clean Metabase models on top.
  • Normalize survey, question, respondent segment, channel, started-at, and submitted-at fields.

How should you model SurveyMonkey data in Metabase?

Core tables

TableGrainKey columns
survey_responsesone row per responseid, survey_id, collector_id, started_at, submitted_at, completed, segment
survey_answersone row per answerresponse_id, question_id, question_heading, answer_type, answer_value
surveymonkey_collectorsone row per collectorid, survey_id, type, sent_count, open_count, created_at

Modeling advice

  • Build a clean survey_responses model with common columns across tools, so multi-source dashboards don't fork definitions.
  • Separate entity tables (requests, surveys, features, accounts) from time-series rollups and event-grain tables.
  • Exclude internal users, test workspaces, and preview traffic from headline metrics; keep segment as an explicit column.
  • Use stable IDs for account, request, and survey joins; display names change.

Which SurveyMonkey metrics should you track in Metabase?

MetricDefinitionNotes
Survey response rateResponses divided by invitations, opens, or views.Pin the denominator once — sends, opens, and views differ.
Survey completion rateCompleted responses divided by started responses.Falls fast with length; segment by question count.
Net Promoter ScorePercent promoters minus percent detractors on the 0-10 scale.Always report response volume next to the score.
CSATSatisfied responses over all satisfaction responses.Define the satisfied threshold once (usually 4-5 of 5).

What SQL powers SurveyMonkey dashboards in Metabase?

These assume a cleaned analytical model in a warehouse (PostgreSQL dialect). Adjust table and column names to match your pipeline.

NPS trend by monthPostgreSQL

Promoters minus detractors, with response volume.

SELECT
  date_trunc('month', submitted_at) AS month,
  COUNT(*) AS responses,
  ROUND(
    100.0 * (
      COUNT(*) FILTER (WHERE score >= 9)
      - COUNT(*) FILTER (WHERE score <= 6)
    ) / NULLIF(COUNT(*), 0), 1
  ) AS nps
FROM nps_responses
GROUP BY 1
ORDER BY 1;
Response and completion rate by surveyPostgreSQL

Reach and finish rates side by side.

SELECT
  s.name AS survey,
  s.invited_count,
  COUNT(r.id) AS responses,
  ROUND(
    100.0 * COUNT(r.id) / NULLIF(s.invited_count, 0), 1
  ) AS response_rate,
  ROUND(
    100.0 * COUNT(r.id) FILTER (WHERE r.completed)
    / NULLIF(COUNT(r.id), 0), 1
  ) AS completion_rate
FROM surveys s
LEFT JOIN survey_responses r ON r.survey_id = s.id
GROUP BY s.name, s.invited_count
ORDER BY response_rate DESC;
Answer rate by question positionPostgreSQL

Where respondents drop off inside a survey.

SELECT
  a.question_position,
  a.question_title,
  COUNT(DISTINCT a.response_id) AS answered,
  ROUND(
    100.0 * COUNT(DISTINCT a.response_id)
    / NULLIF(MAX(t.total_responses), 0), 1
  ) AS answer_rate
FROM survey_answers a
CROSS JOIN (
  SELECT COUNT(*) AS total_responses
  FROM survey_responses
  WHERE survey_id = {{survey_id}}
) t
WHERE a.survey_id = {{survey_id}}
GROUP BY a.question_position, a.question_title
ORDER BY a.question_position;

What are common mistakes when analyzing SurveyMonkey in Metabase?

Syncing raw event or session streams into the warehouse.→ Land entities, votes, responses, and daily rollups. Raw streams belong in SurveyMonkey; the warehouse is for trends and joins.
Reporting NPS without response volume.→ A score swing on a handful of responses is noise. Chart volume next to the score, and hold judgment below a minimum sample.
Comparing response rates with different denominators.→ Responses over sends, opens, and views are three different metrics. Pick one denominator per program and label it on the card.
Building dashboards from live MCP lookups only.→ MCP is useful for exploration; durable dashboards need a database-backed model with history.

Related analytics

Related dashboards

Related integrations

FAQ

Does Metabase connect natively to SurveyMonkey?
No. Metabase reads databases and warehouses. Sync SurveyMonkey data into a database first, or upload a CSV with the Metabase CLI, then build Metabase models and dashboards on top.
Should Metabase replace SurveyMonkey?
No — they answer different questions. SurveyMonkey is built for collecting and acting on the signals it captures. Metabase is where you build governed, shareable reporting on top of the same data, and join it with CRM, support, product, and revenue data.
Can I compute NPS in Metabase from raw responses?
Yes. Land response-grain data with the 0-10 score, then compute percent promoters (9-10) minus percent detractors (0-6) — see the NPS metric guide for the SQL. Always chart response volume next to the score: a jump on 12 responses is noise, not signal.
How do I combine surveys from multiple tools?
Normalize everything into shared survey_responses and survey_answers models with consistent survey, question, segment, and timestamp fields. Keep tool-specific extras in extension tables so cross-tool response and completion rates stay comparable.