{"site":{"name":"Koji","description":"AI-native customer research platform that helps teams conduct, analyze, and synthesize customer interviews at scale.","url":"https://www.koji.so","contentTypes":["blog","documentation"],"lastUpdated":"2026-07-09T17:30:19.091Z"},"content":[{"type":"documentation","id":"838fd370-2180-4e69-978f-d64c94b3b1fb","slug":"google-sheets-research-integration","title":"Google Sheets + Koji: Launch AI Interviews from a Spreadsheet and Auto-Log Every Insight Back","url":"https://www.koji.so/docs/google-sheets-research-integration","summary":"The Koji + Google Sheets integration is bidirectional. Sheet into Koji: a new row (with an email) triggers a Koji AI-moderated interview via Zapier, Make, or Apps Script calling Koji's Start Interview endpoint. Koji back into Sheet: on analysis_ready, an automation appends a Results row with respondent, sentiment, top themes, each structured answer, quality score, and transcript URL, so the tab becomes a live dataset you pivot with plain formulas. Three setups: no-code Zapier/Make (about 20 min), Apps Script + headless API + webhooks (about 45 min), or a one-shot CSV import (5 min) using Koji's built-in participant import and data export. Structured questions (six types) return typed values that become clean numeric, categorical, and text columns. Identity resolves via respondent_email or respondent_id; anonymous mode logs only aggregate insight columns. Headless API and webhooks are on the Interviews plan (EUR79/mo) and Enterprise; CSV import and export work on any plan.","content":"# Google Sheets + Koji: Run AI Interviews from a Spreadsheet and Auto-Log Every Insight Back\n\n**Answer first:** For a huge number of teams, the real CRM is a Google Sheet. Koji meets you there. The integration runs both ways: (1) **a row becomes an interview** — add a contact (or paste a list) to a Sheet and Koji sends each person a personalized AI-moderated interview link, and (2) **every finished interview becomes a row** — Koji appends the respondent, top themes, sentiment, quality score, key structured answers, and a transcript URL to a live results tab. Build it with zero code using the Google Sheets modules in Zapier or Make, or with a short Apps Script that calls Koji's headless API and receives its webhooks. If you just want a one-shot batch, Koji's built-in CSV import does it in five minutes. This is the fastest way for a founder or ops lead with no data warehouse to run *continuous* research.\n\n## Why Google Sheets is the right home for lightweight research ops\n\nNot every team has Segment, a warehouse, or a RevOps engineer. What they *do* have is a spreadsheet: the churned-this-week list, the beta signup tab, the conference-badge scan export, the trial accounts a founder is watching. A Sheet is the universal, zero-onboarding database — and it is exactly where a scrappy research motion should live.\n\nThe problem is that spreadsheets are inert. They hold contacts but cannot talk to them, and they hold no memory of *why* anyone did anything. Koji turns the Sheet into a two-way research surface: the left columns are who to talk to, and the right columns fill themselves in with what those people said. Because Koji's AI moderator runs the interviews (voice or text, adaptive follow-ups, automatic analysis), you get interview-grade depth without booking a single call — the spreadsheet equivalent of hiring a research team that never sleeps.\n\n## What flows in each direction\n\n### Sheet → Koji (a row triggers an interview)\n- You add or paste a row with at least an email (and any personalization fields — name, plan, last action).\n- An automation watches the sheet and calls Koji's [Start Interview endpoint](/docs/starting-interviews-via-api) with `respondent_email` and optional custom fields.\n- Koji sends each person a personalized link and moderates the interview end to end.\n\n### Koji → Sheet (an interview appends a results row)\n- On `analysis_ready`, Koji's webhook fires.\n- Your automation appends a row to a **Results** tab: respondent, date, sentiment, top themes, each structured answer, quality score, and a transcript URL.\n- The tab becomes a living dataset you can pivot, filter, and chart with plain spreadsheet formulas.\n\n## Three ways to build it\n\n**1. No-code with Zapier or Make (about 20 minutes).** Use the **Google Sheets \"New Spreadsheet Row\"** trigger to fire Koji's \"Start Interview\" action, and a Koji-webhook trigger to run Google Sheets' \"Create Row\" action into your Results tab. See [Connect Koji to Zapier](/docs/zapier-research-automation) or [Connect Koji to Make](/docs/make-research-automation). Best for most teams.\n\n**2. Apps Script + headless API (about 45 minutes).** A short Google Apps Script reads new rows and calls Koji's [headless API](/docs/headless-api-overview); a companion `doPost(e)` web app receives Koji [webhooks](/docs/webhook-setup) and appends results. Fully self-contained inside your Google account, no third-party automation tool.\n\n**3. CSV import for a one-shot batch (5 minutes).** Download the Sheet as CSV and use Koji's built-in [participant CSV import](/docs/importing-participants-csv) to launch interviews immediately, then [export results](/docs/exporting-research-data) back to a Sheet when they complete. Perfect for a first test before you automate.\n\n## Turn structured answers into clean columns\n\nThe magic that makes a Koji Results tab genuinely analyzable is **structured questions**. Each Koji study can mix six question types — `open_ended`, `scale`, `single_choice`, `multiple_choice`, `ranking`, and `yes_no` — and each returns a typed value. That means a `scale` question becomes a numeric column you can average, a `single_choice` becomes a categorical column you can pivot, and the `open_ended` themes come back as text you can filter. Design them with the [structured questions guide](/docs/structured-questions-guide) and your spreadsheet does the aggregation for free.\n\n## Example: a weekly churn-interview spreadsheet\n1. Every Monday, export \"cancelled last week\" from billing into a **Contacts** tab.\n2. A Zapier zap sends each a Koji interview: one `single_choice` cancellation reason, two `open_ended` probes, one `scale` \"would you return if we fixed this?\"\n3. As interviews finish, rows append to the **Results** tab with reason, sentiment, and quotes.\n4. A pivot table ranks cancellation reasons by week — a live churn dashboard built entirely in Sheets. Pair it with [churn interview questions](/docs/churn-interview-questions) for the script.\n\n## Identity and privacy\nMatch on **email** (`respondent_email`) so results land next to the right contact, or pass a row ID as `respondent_id`. For sensitive studies, run in **anonymous mode**: Koji collects no email, and you log only the aggregate insight columns — no personal identifiers in the sheet.\n\n## Plans and limits\nThe headless API and webhooks (needed for the fully automated, two-way setup) are on the **Interviews plan (EUR79/month, 79 credits)** and **Enterprise**. On the **Insights plan (EUR29/month)** you can still use CSV import to launch from a Sheet and export results back manually. Each completed interview consumes one credit.\n\n## What a Results row looks like\n\nA well-designed Results tab is self-documenting. For each completed interview Koji can append: respondent (or an anonymous ID), completion date, overall sentiment, the top themes as text, one column per structured question (a number for `scale`, a category for `single_choice`, a list for `multiple_choice` or `ranking`), the interview quality score, and a transcript URL. From there, a pivot table or a `QUERY()` formula turns the tab into a dashboard — average NPS by segment, a count of each cancellation reason, or a filtered list of every frustrated respondent worth a personal follow-up.\n\n## Common pitfalls (and how to avoid them)\n- **One giant tab for everything.** Keep a **Contacts** tab (inputs) separate from a **Results** tab (outputs) so triggers and appends never collide.\n- **No dedup key.** Add an email or row-ID column and match on it so re-runs update the right person instead of creating duplicates.\n- **Forgetting rate limits.** If you paste thousands of rows at once, batch them; do not fire thousands of interview starts in a single second.\n- **Storing sensitive answers in a shared sheet.** For sensitive topics, run Koji in anonymous mode, log only aggregate columns, and restrict sharing on the file.\n\n## Beyond one sheet: when to graduate\n\nA spreadsheet is the perfect place to *start* a research motion and often good enough to keep it. But when your Results tab crosses a few thousand rows, when several teammates need role-based access, or when you want insights joined to product behavior, it is time to graduate the same automation to a CRM or CDP. The good news: the Koji side does not change. The identical [Start Interview](/docs/starting-interviews-via-api) call and `analysis_ready` [webhook](/docs/webhook-setup) that powered your sheet also power a [Segment](/docs/segment-research-integration) or [HubSpot](/docs/crm-research-integration-guide) pipeline — you just point the output at a new destination. Start in Sheets, scale when the spreadsheet starts to strain, and never rebuild your research logic from scratch.\n\n## A five-minute first test before you automate\n\nYou do not need any automation tool to prove the value. Put a list of emails in a single column, export the tab as a CSV, and use Koji's [participant CSV import](/docs/importing-participants-csv) to launch interviews to everyone at once. Watch the [real-time report](/docs/real-time-research-insights) fill in as responses arrive, then [export the results](/docs/exporting-research-data) back into a fresh Sheet tab when the study wraps. If the transcripts and themes are useful — and they almost always are — you then invest the 20 minutes to make it continuous with Zapier or Make. Test manually first, automate second.\n\n## Formulas that turn results into a dashboard\n\nOnce results land in a tab, plain spreadsheet formulas do the analysis no separate BI tool required. A `COUNTIF` over the `single_choice` cancellation-reason column gives you a ranked reason breakdown. An `AVERAGEIF` over a `scale` column segmented by plan tells you which customers are least satisfied. A `QUERY()` statement filtering `sentiment = \"frustrated\"` produces a live call list of at-risk customers for the CS team. Because Koji's structured questions return clean typed values rather than free text blobs, these formulas just work, and the dashboard updates itself every time a new interview appends a row.\n\n## Related Resources\n- [Importing Participants via CSV](/docs/importing-participants-csv)\n- [Exporting Research Data](/docs/exporting-research-data)\n- [Connect Koji to Zapier](/docs/zapier-research-automation)\n- [Structured Questions in AI Interviews](/docs/structured-questions-guide)\n- [Churn Interview Questions](/docs/churn-interview-questions)\n- [Real-Time Research Insights](/docs/real-time-research-insights)","category":"API Reference","lastModified":"2026-07-09T03:25:47.319156+00:00","metaTitle":"Google Sheets + Koji: AI Interviews From a Spreadsheet","metaDescription":"Launch Koji AI interviews from a Google Sheet of contacts and auto-append every interview's themes, sentiment, quality score, and transcript link back to a live results tab.","keywords":["google sheets koji integration","ai interviews from spreadsheet","google sheets user research","spreadsheet interview automation","koji csv import","research automation google sheets","no code customer research"],"aiSummary":"The Koji + Google Sheets integration is bidirectional. Sheet into Koji: a new row (with an email) triggers a Koji AI-moderated interview via Zapier, Make, or Apps Script calling Koji's Start Interview endpoint. Koji back into Sheet: on analysis_ready, an automation appends a Results row with respondent, sentiment, top themes, each structured answer, quality score, and transcript URL, so the tab becomes a live dataset you pivot with plain formulas. Three setups: no-code Zapier/Make (about 20 min), Apps Script + headless API + webhooks (about 45 min), or a one-shot CSV import (5 min) using Koji's built-in participant import and data export. Structured questions (six types) return typed values that become clean numeric, categorical, and text columns. Identity resolves via respondent_email or respondent_id; anonymous mode logs only aggregate insight columns. Headless API and webhooks are on the Interviews plan (EUR79/mo) and Enterprise; CSV import and export work on any plan.","aiPrerequisites":["A Koji account (CSV import works on any plan; full automation needs the Interviews or Enterprise plan)","A Google account with Sheets","Optional: a Zapier or Make account, or basic Apps Script familiarity"],"aiLearningOutcomes":["Trigger Koji AI interviews from new Google Sheet rows","Auto-append interview insights back to a live results tab","Turn structured question answers into analyzable spreadsheet columns","Run a one-shot batch with CSV import before automating"],"aiDifficulty":"beginner","aiEstimatedTime":"11 min read"}],"pagination":{"total":1,"returned":1,"offset":0}}