Google Autocomplete to Google Sheets, keyword ideas
Keyword research gets messy fast. You grab “good enough” ideas from Google Autocomplete, paste them into a sheet, delete duplicates, fix weird spacing, then realize you forgot to save the raw list for later.
SEO strategists feel this when they’re building briefs under pressure. A content manager trying to keep writers moving feels it too. So does a freelancer who just wants a clean starting list. This keyword ideas automation turns one seed term into a consistent, usable keyword list without the cleanup ritual.
You’ll see what the workflow does, what you need to run it, and how to plug the output into Google Sheets (or Excel) so your research stays organized.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Google Autocomplete to Google Sheets, keyword ideas
flowchart LR
subgraph sg0["Flow 1"]
direction LR
n0@{ icon: "mdi:swap-vertical", form: "rounded", label: "Separate Suggestions", pos: "b", h: 48 }
n1@{ icon: "mdi:cog", form: "rounded", label: "Collect Keyword Set", pos: "b", h: 48 }
n2["<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/>Inbound Keyword Hook"]
n3["<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/httprequest.dark.svg' width='40' height='40' /></div><br/>Generate Search Suggestions"]
n4@{ icon: "mdi:cog", form: "rounded", label: "Parse Suggestion XML", pos: "b", h: 48 }
n5@{ icon: "mdi:swap-vertical", form: "rounded", label: "Normalize Keyword List", pos: "b", h: 48 }
n6["<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/>Send Keyword Response"]
n1 --> n6
n0 --> n5
n5 --> n1
n4 --> n0
n2 --> n3
n3 --> n4
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,n3,n6 api
classDef customIcon fill:none,stroke:none
class n2,n3,n6 customIcon
The Problem: Autocomplete Ideas Don’t Stay Clean
Google Autocomplete is one of the quickest ways to discover how people actually search. The problem is everything after you see the suggestions. You copy a handful, paste them somewhere, then spend your time cleaning instead of thinking. Extra spaces slip in. Duplicates hide in plain sight. Someone on your team runs the same seed term next week and ends up with a slightly different format, so the sheet becomes impossible to compare. Honestly, it’s not “hard” work, it’s just the kind of repeatable busywork that drains momentum.
The friction compounds. Here’s where it usually breaks down.
- You burn about 20 minutes per seed term bouncing between browser tabs and spreadsheets.
- Lists come back inconsistent, which means writers get vague briefs and you get weaker drafts.
- Duplicates and formatting junk sneak in, so your “final” list still needs a second pass.
- There’s no reliable way to repeat the process for 30 topics without turning it into a full afternoon.
The Solution: Turn a Seed Term Into a Clean Keyword List
This n8n workflow gives you a simple input and a structured output. You send a seed term to a webhook URL (for example, “keyword research” or a product category). n8n then calls Google Autocomplete via an HTTP request, pulls back the suggestion results, and parses them into individual keyword ideas. Next, the workflow normalizes the list so it’s consistent (think: clean text, one keyword per row, no strange formatting surprises). Finally, it returns the keyword array as a response you can store, forward, or log into Google Sheets for ongoing tracking.
The flow starts with a webhook call containing your seed query. Google Autocomplete suggestions are fetched and parsed, then the workflow splits and cleans each suggestion. At the end, you get a tidy list back that’s ready to paste into a brief or write directly into your spreadsheet.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you build briefs for 10 articles a week and you normally collect Autocomplete suggestions for 5 seed terms per article. If you spend about 10 minutes per seed copying, pasting, and cleaning, that’s roughly 8 hours of busywork weekly. With this workflow, you hit the webhook with the seed term (a few seconds), let n8n fetch and clean suggestions, then write the output into Google Sheets. Even if you still review and prune the list for quality, you usually get most of that 8 hours back.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Google Sheets for logging and sharing keyword lists
- Microsoft Excel 365 if your team prefers Excel-based tracking
- Webhook URL (generated inside this n8n workflow)
Skill level: Beginner. You’ll paste a webhook URL, run a test request, and connect your spreadsheet account.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A webhook receives your seed term. You call the workflow URL and pass your keyword in a query parameter (q=…). That one request is the trigger.
Google Autocomplete gets queried in the background. n8n sends an HTTP request to fetch the suggestions for that seed. The response comes back in XML, which the workflow then parses so it can work with the values cleanly.
Suggestions are split, cleaned, and standardized. The workflow separates each suggestion into its own item, then normalizes the final list (so casing, spacing, and structure don’t drift between runs).
The workflow returns a keyword array you can log. It responds to the original webhook call with the cleaned list. From there, you can push rows into Google Sheets, sync to Excel, or merge into a broader research base.
You can easily modify the output format to write straight into Google Sheets instead of returning it as a response, based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Webhook Trigger
Set up the inbound webhook that receives the keyword query and starts the workflow.
- Add the Inbound Keyword Hook node as your trigger.
- Set the Path to
76a63718-b3cb-4141-bc55-efa614d13f1d. - Set the Response Mode to
lastNodeso the final response is sent by Send Keyword Response. - Save the node and copy the production webhook URL for later testing.
Tip: The workflow expects a query parameter q (e.g., ?q=running+shoes) because Generate Search Suggestions uses {{ $json.query.q }}.
Step 2: Connect Google Suggestions via HTTP
Configure the HTTP request that fetches Google autocomplete suggestions based on the incoming keyword.
- Add and connect the Generate Search Suggestions node after Inbound Keyword Hook.
- Set the URL to
=https://google.com/complete/search?output=toolbar&gl=US&q={{ $json.query.q }}. - Leave other options at their defaults unless you need to adjust region or output format.
⚠️ Common Pitfall: If no suggestions return, confirm the webhook request includes a q query parameter and that it’s URL-encoded.
Step 3: Set Up Suggestion Parsing and Normalization
Parse the XML response and normalize suggestion items into a clean keyword list.
- Add Parse Suggestion XML after Generate Search Suggestions to convert XML into JSON.
- Add Separate Suggestions next and set Field to Split Out to
toplevel.CompleteSuggestion. - Add Normalize Keyword List and create an assignment with Name set to
Keywords, Type set toarray, and Value set to={{ $json.suggestion.data }}. - Ensure Ignore Conversion Errors is enabled in Normalize Keyword List to avoid workflow failure on unexpected items.
Step 4: Configure the Output Response
Aggregate the normalized keyword suggestions and send them back to the webhook caller.
- Add Collect Keyword Set after Normalize Keyword List.
- In Collect Keyword Set, aggregate the field Keywords to build a single list.
- Add Send Keyword Response after Collect Keyword Set and set Respond With to
allIncomingItems.
Step 5: Test and Activate Your Workflow
Verify the full flow from webhook request to keyword response and then enable it for production use.
- Click Execute Workflow and send a test request to the Inbound Keyword Hook URL with a
qparameter (e.g.,?q=coffee). - Confirm the execution path follows Inbound Keyword Hook → Generate Search Suggestions → Parse Suggestion XML → Separate Suggestions → Normalize Keyword List → Collect Keyword Set → Send Keyword Response.
- Check the final webhook response for a list of keyword suggestions in the Keywords output.
- Once successful, toggle the workflow to Active to enable production use.
Common Gotchas
- Google Sheets credentials can expire or need specific permissions. If things break, check your connected Google account in n8n’s Credentials section 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 already connected.
No. You will mainly paste a webhook URL and connect Google Sheets.
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 Sheets usage (usually free) and any optional AI steps you add later.
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 a common tweak. You keep the same webhook trigger and Autocomplete fetch, then add a Google Sheets node after “Normalize Keyword List” to append rows. Many teams also add a timestamp column, the original seed term, and a “campaign” field so they can filter later.
Usually it’s expired Google credentials or the wrong Google account connected. Reconnect the Google Sheets credential in n8n, then confirm the Sheet is shared with that account. If it still fails, check the specific node error for permission scopes and make sure the spreadsheet isn’t restricted by an organization policy.
A lot. On n8n Cloud, it depends on your monthly execution limit, and on self-hosted there’s no hard cap beyond your server capacity and Google’s rate limits.
It depends on how fussy you are about data cleanliness and repeatability. n8n is better when you need to parse responses (like XML), split arrays, and normalize output before it hits your spreadsheet, because you can add logic without every branch turning into a pricing problem. Zapier and Make can still do it, but you often end up with extra steps for formatting, and those steps add up. If your workflow is “two apps, one trigger, one action,” they’re fine. If you want a durable keyword pipeline you can extend later (Airtable base, dedupe rules, scoring), n8n is the safer bet. Talk to an automation expert if you want help choosing.
Once this is running, keyword collection stops being a task you “get around to.” You send a seed term, get a clean list back, and move on to the work that actually improves rankings.
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.