Jotform + Google Sheets: survey summaries ready to use
Reading open-ended survey answers sounds simple until you’re 60 responses deep, copying quotes into a doc, and still not sure what the “real takeaway” is.
This Jotform Sheets summaries automation hits marketing teams first, but customer success managers and research leads feel it too. You get two clean AI summaries for every submission (detailed and high-level), stored where your team already works.
Below you’ll see exactly what the workflow does, what you need to run it, and how to adapt it for things like alerts, sentiment, or multi-language surveys.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Jotform + Google Sheets: survey summaries ready to use
flowchart LR
subgraph sg0["Structured Output Pa Flow"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/webhook.dark.svg' width='40' height='40' /></div><br/>Webhook"]
n1@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model", pos: "b", h: 48 }
n2@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser", pos: "b", h: 48 }
n3@{ icon: "mdi:cog", form: "rounded", label: "Persist On DataTable", pos: "b", h: 48 }
n4@{ icon: "mdi:database", form: "rounded", label: "Append or update row in sheet", pos: "b", h: 48 }
n5@{ icon: "mdi:robot", form: "rounded", label: "Comprehensive & Abstract Sum..", pos: "b", h: 48 }
n6@{ icon: "mdi:cog", form: "rounded", label: "Create a document", pos: "b", h: 48 }
n7@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set the Input Fields", pos: "b", h: 48 }
n8@{ icon: "mdi:cog", form: "rounded", label: "Update a document", pos: "b", h: 48 }
n0 --> n7
n6 --> n8
n7 --> n5
n1 -.-> n5
n2 -.-> n5
n5 --> n3
n5 --> n4
n5 --> n6
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n2,n5 ai
class n1 aiModel
class n4 database
class n0 api
classDef customIcon fill:none,stroke:none
class n0 customIcon
The Problem: Survey insights get stuck in “raw text” mode
Open-text responses are the best part of a survey, and the worst part to process. You end up scanning paragraphs, pulling “good quotes,” then trying to write a summary that doesn’t miss something important. After a while, everything starts to blur together and you’re second-guessing what people actually said. The real cost isn’t only time. It’s the mental load of turning messy feedback into something a stakeholder will read, trust, and act on.
It compounds quickly. Here’s where it breaks down in real teams.
- You spend about 5 minutes per response just to copy, paste, and format text into something readable.
- Different people summarize differently, so your “insights” change depending on who did the work that day.
- Important details get lost, especially when responses include multiple ideas, complaints, and suggestions in one block.
- Sharing is annoying because the summary lives in a doc, the raw data lives in Jotform, and your tracking sheet is always behind.
The Solution: Jotform → AI summaries → Sheets + Docs (automatically)
This workflow listens for new Jotform submissions and turns each response into two AI-written summaries you can actually use. First, it captures the full form payload through an inbound webhook. Then it maps the key fields (like form title, submission ID, and a clean “body” version of the response) into a structured format. Next, an AI summarization chain (Google Gemini in the provided workflow) generates both a comprehensive summary that keeps the factual details and an abstract summary that pulls the themes and implications. Finally, the workflow stores the results in a DataTable for history, upserts a row in Google Sheets, and creates a Google Doc per submission with both summaries inserted and ready to share.
The workflow starts when a Jotform response arrives. The AI produces two layers of insight, then n8n writes them to Google Sheets for tracking and into Google Docs for clean, shareable “one response = one note” records.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you run a post-event survey and get 20 open-ended responses a day. Manually, if you spend about 5 minutes reading and summarizing each one, that’s roughly 100 minutes daily (and then you still have to paste it into a sheet and format a shareable note). With this workflow, your “work” is basically zero after setup: the response triggers instantly, AI processing runs in the background, and the summaries land in Google Sheets and a fresh Google Doc. You get back about 1–2 hours on busy days without skipping the insight step.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Jotform to collect and send submissions
- Google Sheets to store summaries in a shared tracker
- Google Docs to create a shareable note per submission
- Google Gemini API key (get it from Google AI Studio / Gemini API credentials)
Skill level: Beginner. You’ll connect accounts, paste a webhook URL into Jotform, and map a few fields.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A new Jotform submission triggers the workflow. n8n receives the full response through an inbound webhook, so you don’t need someone exporting CSVs or checking dashboards.
The response is cleaned up and mapped into “summary-ready” text. The workflow sets fields like FormTitle, SubmissionID, and a formatted body, which keeps the AI step consistent across different forms.
AI generates two summaries, then validates the shape of the output. Gemini produces both the comprehensive and abstract summaries, and a structured output parser enforces a JSON schema so the next steps don’t break when wording changes.
Summaries are stored and shared automatically. n8n logs the result in a DataTable, upserts a row in Google Sheets, then creates and fills a Google Doc titled with the form and submission ID.
You can easily modify the AI prompt to match your brand voice, or expand the schema to include sentiment and topics based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Webhook Trigger
This workflow starts when an external system sends form data to the webhook endpoint.
- Add the Inbound Webhook Trigger node as the trigger.
- Set HTTP Method to
POST. - Set Path to
f3c34cda-d603-4923-883b-5+1234567890and copy the generated webhook URL for your form service.
Step 2: Map Incoming Form Fields
Normalize the webhook payload into fields used by the AI and document steps.
- Add the Map Input Fields node and connect it to Inbound Webhook Trigger.
- Set FormTitle to
={{ $json.body.formTitle }}. - Set SubmissionID to
={{ $json.body.submissionID }}. - Set body (type: object) to
={{ $json.body.toJsonString() }}.
Step 3: Set Up the AI Summarization Chain
Configure the AI to produce both comprehensive and abstract summaries from the form data.
- Add the Dual Summary Composer node and connect it to Map Input Fields.
- Set Text to
=Build a comprehensive summary of the following {{ $json.body.pretty }}. - Keep Prompt Type set to
defineand ensure Has Output Parser is enabled. - Connect Gemini Chat Engine as the language model for Dual Summary Composer. Credential Required: Connect your googlePalmApi credentials.
- Connect Structured Result Parser to Dual Summary Composer and set JSON Schema Example to
{ "comprehensive_summary": "", "abstract_summary": "" }.
Credential Required: The Structured Result Parser is an AI sub-node. Add credentials to the parent Gemini Chat Engine, not to the parser itself.
Step 4: Configure Output Destinations (Parallel Execution)
After summarization, the workflow branches to store data, update a Google Sheet, and generate a Google Doc in parallel.
Dual Summary Composer outputs to both Store in DataTable and Upsert Sheet Row and Generate Document File in parallel.
- Configure Store in DataTable with Data Table set to
[YOUR_ID]and map fields: abstract_summary to={{ $json.output.abstract_summary }}and comprehensive_summary to={{ $json.output.comprehensive_summary }}. - Configure Upsert Sheet Row with Operation set to
appendOrUpdate, Document ID to[YOUR_ID], and Sheet Name togid=0. Map abstract_summary and comprehensive_summary using the same expressions as above. Credential Required: Connect your googleSheetsOAuth2Api credentials. - Configure Generate Document File with Title set to
={{ $('Map Input Fields').item.json.FormTitle }}-{{ $('Map Input Fields').item.json.SubmissionID }}and Folder ID todefault. Credential Required: Connect your googleDocsOAuth2Api credentials. - Connect Generate Document File to Modify Document Content.
- In Modify Document Content, set Operation to
updateand Document URL to={{ $json.id }}. Insert text with the action:=Comprehensive Summary - {{ $('Dual Summary Composer').item.json.output.comprehensive_summary }} Abstract Summary - {{ $('Dual Summary Composer').item.json.output.abstract_summary }}. Credential Required: Connect your googleDocsOAuth2Api credentials.
formTitle and submissionID.Step 5: Test and Activate Your Workflow
Validate the end-to-end flow before enabling it in production.
- Click Execute Workflow and send a test POST request to the Inbound Webhook Trigger URL with sample form data.
- Confirm Dual Summary Composer outputs both
comprehensive_summaryandabstract_summaryin its result. - Verify Store in DataTable inserts the summaries, Upsert Sheet Row updates the Google Sheet, and Generate Document File + Modify Document Content create and populate the Google Doc.
- Toggle the workflow to Active to run automatically on new form submissions.
Common Gotchas
- Google Sheets or Google Docs credentials can expire or need specific permissions. If things break, check n8n’s Credentials page and the Google account’s access to the target file first.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.
Frequently Asked Questions
About 30 minutes if your accounts are ready.
No. You’ll mostly connect accounts and map a few fields. The “logic” is already built into the workflow.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Google Gemini API usage costs, which are usually small per summary but depend on your volume and prompt size.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and it’s honestly one of the best upgrades. Add another AI step after the Dual Summary Composer to output a “sentiment” field (Positive, Neutral, or Negative), then extend the structured parser schema and map that new field into Google Sheets. Common customizations also include topic extraction (top 3 themes), urgency flags (like “needs follow-up”), and output language matching the respondent’s language.
Most of the time it’s the webhook setup, not “Jotform being down.” Confirm the webhook URL in Jotform matches your n8n trigger URL and is publicly reachable (local installs often need a tunnel like ngrok). If it used to work and stopped, re-save the webhook integration in Jotform and re-check the n8n trigger node to make sure it’s listening. Also confirm your form is sending full submissions, not test payloads with missing fields.
A lot.
For AI summarization workflows, n8n is usually the more flexible option because you can enforce structured outputs, add branching logic, and store results internally (like DataTables) without turning every extra step into a pricing surprise. It’s also easier to keep everything “in one place” when you want a Google Doc created, updated, and titled dynamically from multiple fields. Zapier or Make can still work if you want a very simple “new response → send email summary” flow and you don’t care about schema validation. If you expect to tweak prompts, add fields like sentiment/topics, or connect this to a CRM later, n8n tends to age better. Talk to an automation expert if you want a quick recommendation based on volume and team habits.
Once this is running, every response becomes a tidy, shareable insight record without anyone playing copy-paste editor. Set it up once, then spend your time on decisions instead of formatting.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.