Jotform to Google Sheets, sentiment trends ready
Reading every Jotform response sounds simple until you have 40 of them waiting, half are vague, and the “urgent” ones are hiding in plain sight. Then you’re stuck skimming, guessing sentiment, and manually pasting quotes into a spreadsheet.
This sentiment trends automation hits marketing managers hard during campaign reviews, but customer experience leads and ops folks cleaning up feedback loops feel it too. You’ll get a Google Sheet that updates itself with sentiment, topics, keywords, and a readable summary for every submission.
You’re about to see how the workflow turns raw text into structured insights, where the data goes, and what to tweak so it matches your team’s reality.
How This Automation Works
Here’s the complete workflow you’ll be setting up:
n8n Workflow Template: Jotform to Google Sheets, sentiment trends ready
flowchart LR
subgraph sg0["JotForm Flow"]
direction LR
n0@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model", pos: "b", h: 48 }
n1@{ icon: "mdi:robot", form: "rounded", label: "Sentiment Analyzer", pos: "b", h: 48 }
n2@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser", pos: "b", h: 48 }
n3@{ icon: "mdi:database", form: "rounded", label: "Append or update row in sheet", pos: "b", h: 48 }
n4["<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/code.svg' width='40' height='40' /></div><br/>Format the Form Data"]
n5@{ icon: "mdi:robot", form: "rounded", label: "Topics & Keywords", pos: "b", h: 48 }
n6@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model for..", pos: "b", h: 48 }
n7@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser for..", pos: "b", h: 48 }
n8["<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/jotform.dark.svg' width='40' height='40' /></div><br/>JotForm Trigger"]
n9["<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/merge.svg' width='40' height='40' /></div><br/>Merge"]
n10@{ icon: "mdi:cog", form: "rounded", label: "Aggregate", pos: "b", h: 48 }
n9 --> n10
n10 --> n3
n8 --> n4
n5 --> n9
n1 --> n9
n4 --> n1
n4 --> n5
n0 -.-> n1
n2 -.-> n1
n7 -.-> n5
n6 -.-> n5
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 n8 trigger
class n1,n2,n5,n7 ai
class n0,n6 aiModel
class n3 database
class n4 code
classDef customIcon fill:none,stroke:none
class n4,n8,n9 customIcon
Why This Matters: Feedback Piles Up Faster Than You Can Analyze
Qualitative feedback is gold. It’s also messy. Jotform makes it easy to collect opinions, but it doesn’t help you quickly answer basic questions like “Are people happy?” or “What themes keep repeating?” So the analysis turns into a recurring fire drill: someone exports submissions, someone else reads them, and a third person tries to turn free-text comments into something chartable. Even when you do it, it’s already a little out of date. Honestly, the worst part is the mental load of re-reading the same kind of complaint for the tenth time and still not knowing if it’s an isolated issue or a trend.
It adds up fast. Here’s where it breaks down.
- Skimming raw responses every morning steals about an hour that should go to real decisions.
- Sentiment judgments vary by person, which means your “weekly summary” is never consistent.
- Topics and keywords live in someone’s notes instead of your reporting sheet, so trend-spotting becomes guesswork.
- When a high-priority response comes in, it can sit unseen until the next manual review.
What You’ll Build: Jotform Feedback → AI Insights → Google Sheets
This workflow listens for every new Jotform submission and immediately turns it into a structured insight record. First, n8n captures the submission and reformats the raw Jotform JSON into clean, readable text that an AI model can understand. Then it runs two separate AI passes: one extracts the main topics, keyword clusters, and a short theme summary; the other evaluates sentiment (positive, neutral, or negative), pulls key phrases, and sets a basic priority. Those two outputs are merged into one dataset, aggregated into tidy fields, and written into Google Sheets so your team can filter, sort, and spot patterns without manual tagging. If you want a secondary storage layer, it can also persist the same results in an n8n DataTable for later reuse.
The workflow starts at the moment someone hits “Submit” in Jotform. AI turns the response into two clean JSON blocks (topics/keywords and sentiment/summary). Finally, Google Sheets gets a new row with both blocks, ready for reporting and trend reviews.
What You’re Building
| What Gets Automated | What You’ll Achieve |
|---|---|
|
|
Expected Results
Say you get 30 Jotform submissions a week, and you normally spend maybe 3 minutes reading and tagging each one, plus another 30 minutes updating a Google Sheet. That’s about 2 hours weekly just to create “something sortable.” With this workflow, submissions log automatically. You still review them, but it’s in one sheet with pre-filled sentiment, topics, and keywords, which usually turns that weekly admin block into a quick scan and a couple of filters.
Before You Start
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Jotform for collecting survey or feedback submissions.
- Google Sheets to store and review the insights.
- Google Gemini API access (set up credentials inside n8n).
Skill level: Beginner. You’ll connect accounts, paste a webhook URL into Jotform, and test one submission end-to-end.
Want someone to build this for you? Talk to an automation expert (free 15-minute consultation).
Step by Step
A new Jotform submission arrives. The workflow triggers instantly from your form, capturing fields like name, email, and the main feedback text.
The response gets cleaned up for analysis. A small formatting step turns Jotform’s nested JSON into a readable string, so the AI doesn’t miss context or mix up fields.
AI creates two types of insight. One chain extracts topics, keywords, and theme summaries. Another evaluates sentiment and produces a short summary with key phrases and a simple priority label.
Everything is merged and saved to Google Sheets. The workflow combines both outputs and writes them into your sheet as structured fields, so you can filter by sentiment, search for recurring keywords, or build a quick dashboard later.
You can easily modify the prompts and the output columns to match your voice, your product categories, or the way you report insights internally. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Jotform Trigger
Set up the workflow to listen for new Jotform submissions that will feed into the analysis pipeline.
- Add and open Jotform Intake Trigger.
- Set Form to
[YOUR_ID]to point to your Jotform form. - Credential Required: Connect your
jotFormApicredentials.
Step 2: Connect Google Sheets
Store the aggregated AI analysis results in your Google Sheet for tracking and reporting.
- Open Update Sheet Record.
- Set Operation to
appendOrUpdate. - Set Document to
[YOUR_ID]and Sheet togid=[YOUR_ID]. - In Columns, map feedback_analysis to
={{ $json.output.toJsonString() }}and topics_keywords to={{ $json.output[0].toJsonString() }}. - Credential Required: Connect your
googleSheetsOAuth2Apicredentials.
Step 3: Set Up Data Preparation
Convert the Jotform submission into a structured payload that the AI chains can consume.
- Open Prepare Submission Payload.
- Paste the JavaScript Code exactly as follows:
const outputString = JSON.stringify($input.first().json, null, 2);
return [
{
json: {
body: outputString
}
}
];- Confirm the execution flow is Jotform Intake Trigger → Prepare Submission Payload.
Step 4: Set Up the AI Sentiment and Topic Analysis
Configure two AI analysis streams that run in parallel: sentiment review and topic extraction.
- Open Sentiment Review Chain and set Text to
=Perform sentiment analysis of the following {{ $json.body }}. - Open Topic Keyword Extractor and set Text to
=Perform sentiment analysis of the following {{ $json.body }}. - Confirm Prepare Submission Payload outputs to both Sentiment Review Chain and Topic Keyword Extractor in parallel.
- Open Gemini Chat Engine and verify Model is
models/gemini-2.0-flash-exp. - Open Gemini Topic Model and verify Model is
models/gemini-2.0-flash-exp. - Credential Required: Connect your
googlePalmApicredentials on Gemini Chat Engine and Gemini Topic Model. - Ensure Sentiment Output Parser and Topic Output Parser are connected as output parsers; add credentials to the parent nodes (the Gemini model nodes), not the parsers.
Step 5: Configure Aggregation and Final Output
Merge parallel AI outputs and aggregate them into a single payload before storing in Google Sheets.
- Confirm Sentiment Review Chain and Topic Keyword Extractor both connect to Combine Analysis Streams.
- Open Aggregate Results and ensure Fields to Aggregate includes
output. - Verify the execution flow: Combine Analysis Streams → Aggregate Results → Update Sheet Record.
output field so Aggregate Results can collect it.Step 6: Test and Activate Your Workflow
Validate the end-to-end flow and then enable it for production.
- Click Test workflow and submit a sample Jotform entry to trigger Jotform Intake Trigger.
- Check that Prepare Submission Payload produces a
bodyfield and that both AI branches execute in parallel. - Confirm Update Sheet Record appends or updates a row with feedback_analysis and topics_keywords values.
- When successful, toggle the workflow to Active for continuous processing.
Troubleshooting Tips
- Google Sheets credentials can expire or need specific permissions. If things break, check the Google connection in n8n credentials and confirm the target spreadsheet is shared with that account.
- 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.
Quick Answers
About 30 minutes if your Jotform and Google accounts are ready.
No. You will mostly connect accounts and paste a webhook URL into Jotform.
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 AI model costs from Google Gemini based on usage.
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 you should. The easiest win is updating the prompts in the topic/keyword extraction chain and the sentiment review chain so they reflect your product categories and what “urgent” means to you. You can also extend the structured output parser schema to add fields like “recommended action,” “team owner,” or “suggested blog title,” then write those extra fields into new Google Sheets columns.
Usually it’s an OAuth permission issue or the sheet isn’t shared with the Google account tied to your n8n credentials. Reconnect Google Sheets in n8n, then double-check the spreadsheet and tab still exist (renames can break mappings). If you’re writing to a protected range, Sheets will reject the update without a very clear error.
A typical setup can handle hundreds of submissions per day as long as your AI provider limits and Google Sheets quota aren’t being hit.
For this workflow, n8n is a better fit when you want structured AI outputs, branching, and “merge two AI results into one row” logic without constantly bumping into plan limits. It also gives you the option to self-host, which matters once you’re processing lots of responses. Zapier or Make can still work if you keep it simple, but multi-step AI parsing often gets awkward. If your team needs the insights to route to different places (email for negatives, a dashboard for neutrals, a weekly rollup for leadership), n8n’s flexibility is the main advantage. Talk to an automation expert if you’re not sure which fits.
Once this is running, your Google Sheet becomes the source of truth for feedback, not a dumping ground. The workflow handles the repetitive sorting so you can focus on what to change next.
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.