SerpApi to Google Sheets, competitor events logged
You find out about a competitor’s event after it’s already happened. Or you hear about it from a client, which is honestly worse, because you know the data was out there. It’s just scattered across searches, tabs, screenshots, and half-finished notes.
This is the kind of mess marketing managers feel during campaign planning. Event organizers run into it when they’re trying to avoid date conflicts. And small business owners who do their own outreach get stuck doing “research” that’s really just copy-paste. A simple SerpApi events logging setup puts everything into one spreadsheet, automatically.
You’ll set up an n8n workflow that pulls Google Events results via SerpApi, flattens the data into clean rows, and appends it to a Google Sheets log you can actually use.
How This Automation Works
Here’s the complete workflow you’ll be setting up:
n8n Workflow Template: SerpApi to Google Sheets, competitor events logged
flowchart LR
subgraph sg0["Manual Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Manual Trigger", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Search Parameters", 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/httprequest.dark.svg' width='40' height='40' /></div><br/>SerpApi Events Request"]
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/code.svg' width='40' height='40' /></div><br/>Process & Flatten Events"]
n4@{ icon: "mdi:database", form: "rounded", label: "Save to Google Sheets", pos: "b", h: 48 }
n0 --> n1
n1 --> n2
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 n0 trigger
class n4 database
class n2 api
class n3 code
classDef customIcon fill:none,stroke:none
class n2,n3 customIcon
Why This Matters: Competitor events are easy to miss
Tracking competitor events sounds simple until you try to do it consistently. You search “industry meetups near me,” open a few results, then you’re juggling dates, venues, and links across tabs. Next week you search again and can’t remember what was new versus what you already saw. If you’re logging by hand, small errors creep in: a time zone is wrong, the venue name changes, or you paste the same event twice. Meanwhile, the real cost is attention. You burn an hour “just checking,” then avoid doing it again for another month.
It adds up fast. Here’s where it breaks down in the real world.
- You end up with incomplete event records, so planning outreach (or avoiding conflicts) turns into guesswork.
- Manual logging makes it hard to spot changes over time, like new venues, new sponsors, or sudden bursts of activity.
- Copying nested event details from search results wastes about 10 minutes per event, and that’s on a “good” day.
- When the log lives in someone’s head or browser history, your team can’t reuse the work.
What You’ll Build: A Google Events log that updates on demand
This workflow takes your search idea (like “cybersecurity conferences in Austin” or “startup demo day Berlin”) and turns it into a structured spreadsheet log. You start it in n8n, define the search inputs, then the workflow sends a request to SerpApi’s Google Events engine. SerpApi returns a rich response with event blocks that include titles, dates, locations, links, ticket info, and sometimes images. The workflow then flattens that nested response into clean, consistent columns. Finally, it appends those rows into Google Sheets so your “event intel” lives in one place, ready for filtering, outreach planning, or weekly reviews.
The workflow begins with a manual launch so you can test safely. Next, it packages your query and pagination settings, calls SerpApi, and processes each page of results. Once the data is cleaned, Google Sheets becomes the single event log your team updates without thinking about it.
What You’re Building
| What Gets Automated | What You’ll Achieve |
|---|---|
|
|
Expected Results
Say you track 3 competitor categories each week (for example: “product launch events,” “local meetups,” and “industry conferences”), and you log about 10 events per search. Manually, even 8 minutes per event is roughly 4 hours of searching, opening listings, and pasting details. With this workflow, you spend about 5 minutes adjusting queries and kicking off runs, then wait for SerpApi + processing to finish in the background. Your sheet is updated, and you didn’t babysit the browser.
Before You Start
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- SerpApi for Google Events results via API
- Google Sheets to store your event log
- SerpApi API key (get it from your SerpApi dashboard)
Skill level: Beginner. You will connect accounts, paste an API key, and edit a few fields like search query and Sheet ID.
Want someone to build this for you? Talk to an automation expert (free 15-minute consultation).
Step by Step
You run it manually to start. The workflow uses a Manual Trigger, which means you click “Execute” in n8n to test with your own search terms before scheduling anything.
Search inputs get defined in plain English. In the Set node (“Define Search Inputs”), you specify the query, how many events to pull, and the pagination start position. This is where you tailor it to a city, niche, or competitor brand name.
SerpApi is called to fetch Google Events. The HTTP Request node (“External Events API Call”) sends those parameters to SerpApi’s Google Events engine, which returns structured event data you can work with instead of scraping pages yourself.
Everything gets flattened into rows, then logged. The Code node (“Flatten Event Payloads”) converts nested fields into a spreadsheet-friendly structure, then Google Sheets (“Append to Sheets Log”) appends the new events into your log for analysis.
You can easily modify the query and total event count to match your market, then keep the same logging structure. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Manual Trigger
Start the workflow with a manual trigger so you can validate results before automating.
- Add and select Manual Launch Trigger as the trigger node.
- Connect Manual Launch Trigger to Define Search Inputs to follow the execution flow.
- Keep Flowpast Branding as a reference note (no configuration needed).
Step 2: Connect External Events API Call
Define the search criteria and fetch event listings from the external API.
- Open Define Search Inputs and set Mode to
raw. - Paste the JSON in JSON Output:
{ "query": "Events in Texas", "total_events": 10, "start": 0 }. - Open External Events API Call and set URL to
https://serpapi.com/search. - Enable Send Query and set Authentication to
genericCredentialTypewith Generic Auth TypehttpQueryAuth. - Configure query parameters: engine =
google_events, q ={{ $json.query }}, hl =en, gl =us. - In pagination, set start to
{{ $json.start }}, Max Requests to{{ $json.total_events/10 }}, and Request Interval to2000.
Credential Required: Connect your httpQueryAuth credentials
Step 3: Set Up Flatten Event Payloads
Normalize the API response so each event becomes a single item with the query attached.
- Open Flatten Event Payloads and paste the JavaScript from the workflow to iterate
events_resultsand return flattened items. - Confirm the script adds query to each event by reading
item.json.search_parameters?.q. - Connect External Events API Call to Flatten Event Payloads in sequence.
Step 4: Configure Append to Sheets Log
Append the flattened events into a Google Sheet for logging and reporting.
- Open Append to Sheets Log and set Operation to
append. - Select the spreadsheet in Document ID and set Sheet Name to
Sheet1(valuegid=0). - Map columns using expressions: link =
{{ $json.link }}, when ={{ $json.date.when }}, image ={{ $json.image }}, query ={{ $json.query }}. - Continue mapping: title =
{{ $json.title }}, venue ={{ $json.venue }}, address ={{ $json.address }}, start_date ={{ $json.date.start_date }}. - Finish mapping: description =
{{ $json.description }}, ticket_info ={{ $json.ticket_info }}, event_location_map ={{ $json.event_location_map.link }}.
Credential Required: Connect your googleSheetsOAuth2Api credentials
title, start_date, address) to avoid append errors.Step 5: Test and Activate Your Workflow
Validate the end-to-end flow, then turn the workflow on for production use.
- Click Execute Workflow on Manual Launch Trigger to run the workflow manually.
- Check External Events API Call output for a non-empty
events_resultsarray. - Verify Flatten Event Payloads returns multiple items, each with a
queryfield. - Open your Google Sheet and confirm new rows appended by Append to Sheets Log.
- Set the workflow to Active when you are ready to use it in production.
Troubleshooting Tips
- SerpApi credentials can expire or hit plan limits. If things break, check your SerpApi dashboard usage and regenerate the API key used in the HTTP Request node first.
- If you’re using Wait behavior (or you add it later for rate limiting), processing times vary. Bump up the delay if downstream nodes fail because the response is empty or incomplete.
- Google Sheets OAuth scopes and file permissions matter more than people expect. If the append step fails, confirm the connected Google account can edit the target spreadsheet and that the Sheet ID is correct.
Quick Answers
About 30 minutes if your SerpApi key and Google login are ready.
No. You’ll mainly paste credentials and edit the search query and Google Sheet destination.
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 SerpApi usage, since it charges per API call based on your plan.
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’ll mostly do it in “Define Search Inputs.” Common customizations include changing the query (city, niche, competitor name), increasing total_events to pull more pages, and editing the “Append to Sheets Log” column mapping so you store only what your team cares about (like venue, ticket price, or the event link).
Usually it’s a bad or expired API key in the HTTP Request node. It can also be hitting SerpApi limits on your account, or sending the wrong engine/parameters if you edited the request. Check your SerpApi dashboard for errors and usage, then re-run one manual test execution in n8n to confirm the response looks normal.
If you self-host n8n, there’s no execution cap (it depends on your server). In practice, each run can pull multiple pages of results, and SerpApi returns about 10 events per API call, so you scale by adding pages and scheduling runs.
Often, yes, because this job benefits from control. You’re dealing with pagination, nested payloads, and keeping a clean log, and n8n handles branching and code-based flattening without turning every extra step into another paid task. Zapier and Make can work, but you’ll usually feel the friction when you need loops, data shaping, or higher run volume. If you only want a tiny “one search, one row” proof of concept, those tools can be quicker. For anything you plan to rely on weekly, n8n is the sturdier option. Talk to an automation expert if you want a second opinion.
Once this is in place, competitor monitoring stops being a random task and becomes a living log you can trust. You’ll notice changes sooner, plan smarter, and keep your focus on decisions, not data cleanup.
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.