NewsAPI + Google Sheets: daily JP news summaries
Keeping up with daily news sounds simple until you’re juggling multiple sources, copying URLs into a doc, and trying to write a “quick” summary that somehow takes forever.
This NewsAPI Sheets summaries automation hits hardest when you’re responsible for briefings. A marketing manager compiling competitive updates feels it. So does an ops lead, or a consultant sending daily context to clients. You get one clean log with short Japanese summaries, without the daily scramble.
Below, you’ll see how the workflow pulls EN and JP headlines, summarizes them into about 50 characters, and appends everything into a Google Sheet you can search and share.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: NewsAPI + Google Sheets: daily JP news summaries
flowchart LR
subgraph sg0["Schedule Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger", pos: "b", h: 48 }
n1@{ icon: "mdi:database", form: "rounded", label: "Get rows from sheet", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-horizontal", form: "rounded", label: "If Search Required", pos: "b", h: 48 }
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/>HTTP Request (EN)"]
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/httprequest.dark.svg' width='40' height='40' /></div><br/>HTTP Request (JP)"]
n5["<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 Articles"]
n6@{ icon: "mdi:robot", form: "rounded", label: "Summarize with OpenAI", pos: "b", h: 48 }
n7@{ icon: "mdi:database", form: "rounded", label: "Append rows to sheet", 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/code.svg' width='40' height='40' /></div><br/>Split Articles (EN)"]
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/code.svg' width='40' height='40' /></div><br/>Split Articles (JP)"]
n10@{ icon: "mdi:swap-vertical", form: "rounded", label: "Prepare fields", pos: "b", h: 48 }
n5 --> n6
n10 --> n7
n0 --> n1
n3 --> n8
n4 --> n9
n2 --> n3
n2 --> n4
n1 --> n2
n8 --> n5
n9 --> n5
n6 --> n10
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 n6 ai
class n2 decision
class n1,n7 database
class n3,n4 api
class n8,n9 code
classDef customIcon fill:none,stroke:none
class n3,n4,n5,n8,n9 customIcon
The Problem: Daily news tracking turns into busywork
If you rely on news to do your job, you’ve probably built a messy routine around it. Open a few sites, search a keyword, skim headlines, click in, copy a link, then try to summarize it in Japanese for your team. Multiply that by a handful of topics and it becomes a time sink. Worse, the notes end up scattered across Slack messages, browser bookmarks, and half-finished docs. By the time you’re “done,” you’re already behind on the next story.
It’s not just the time. The context-switching is what drains you.
- Copying headlines and URLs by hand is slow, and it’s easy to paste the wrong link into the wrong update.
- Switching between English and Japanese sources creates gaps, so your briefings skew toward whatever you checked first.
- Summaries are inconsistent because you’re writing them in a rush, which means teammates stop trusting the “daily digest.”
- Without a searchable log, you can’t answer basic questions later like “When did this topic start trending?”
The Solution: Automatically log EN + JP headlines as short JP summaries
This n8n workflow turns daily news monitoring into a simple, repeatable system. It starts by reading a list of keywords from your Google Sheet (your “input” tab). For each keyword that’s marked as needed, it queries NewsAPI for English sources and Japanese sources. Those articles are then combined into a single stream, passed through OpenAI for a concise Japanese summary (about 50 characters), and mapped into clean fields. Finally, every result is appended to an “output” tab in Google Sheets with the date, keyword, summary, and URL. You end the day with a tidy log you can filter, scan, and forward without rewriting everything.
The workflow kicks off on a daily schedule at 13:00 (or you can run it manually). NewsAPI collects the raw articles, OpenAI compresses each story into a quick Japanese line, and Google Sheets becomes your single source of truth. If a keyword isn’t needed today, the workflow simply skips it.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you track 8 keywords for a daily internal briefing. Manually, you might spend about 10 minutes per keyword finding EN sources, another 10 minutes checking JP sources, then a few more minutes writing a short Japanese note and pasting the URL. That’s roughly 3 hours on a “quick” update. With this workflow, you spend about 5 minutes maintaining the keyword list, then let the 13:00 run fetch, summarize, and log everything automatically.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Google Sheets for keyword input and output logging
- NewsAPI to fetch English and Japanese headlines
- OpenAI API key (get it from your OpenAI dashboard)
Skill level: Beginner. You’ll paste in API keys, connect Google, and match your Sheet tab names.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A daily scheduled trigger runs. By default it fires at 13:00, but you can change the time or run it manually when you need a fresh snapshot.
Your keyword list is pulled from Google Sheets. The workflow reads rows from an “01_Input” tab (Keyword, SearchRequired), then checks the flag so you only search topics you actually want today.
NewsAPI collects EN and JP articles. Two requests run in parallel (English sources and Japanese sources). Each stream is split into individual articles, then merged back into one combined list for summarization.
OpenAI generates a short Japanese summary and the result is logged. The workflow maps the final fields (date, keyword, summary, URL) and appends them into your “02_Output” tab so it becomes a living archive.
You can easily modify the keyword logic to support categories or clients instead of topics based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Schedule Trigger
Set the workflow to run automatically on a schedule so it can pull new keywords and fetch fresh news.
- Add or open the Scheduled Run Trigger node.
- Set the schedule rule to run at hour
13(as configured in the node). - Connect Scheduled Run Trigger to Retrieve Sheet Rows.
Step 2: Connect Google Sheets
Pull search keywords and flags from your input sheet, then later write summarized results to your output sheet.
- Open Retrieve Sheet Rows and select your Google Sheets file with Document ID set to
[YOUR_ID]. - Set Sheet Name to
YOUR_INPUT_SHEET_NAME_OR_GID. - Credential Required: Connect your googleSheetsOAuth2Api credentials in Retrieve Sheet Rows.
- Open Append to Output Sheet and set Document ID to
[YOUR_ID]and Sheet Name toYOUR_OUTPUT_SHEET_NAME_OR_GID. - Keep Operation set to
append. - Credential Required: Connect your googleSheetsOAuth2Api credentials in Append to Output Sheet.
Step 3: Configure News Fetching and Parallel Branches
Filter rows that require searching, then fetch English and Japanese news in parallel based on each keyword.
- In Check Search Flag, confirm the condition checks leftValue
{{ $json['SearchRequired'] }}equals rightValueYes. - Connect Retrieve Sheet Rows to Check Search Flag.
- Check Search Flag outputs to both News API Request EN and News API Request JP in parallel.
- In News API Request EN, set URL to
=https://newsapi.org/v2/everythingand enable Send Query. - Configure EN query parameters: q
{{ $json['Keyword'] }}, languageen, pageSize5, and apiKey[CONFIGURE_YOUR_API_KEY]. - In News API Request JP, keep URL at
=https://newsapi.org/v2/everythingwith query parameters: q{{ $json['Keyword'] }}, domainsnhk.or.jp,asahi.com,nikkei.com,news.yahoo.co.jp,itmedia.co.jp,impress.co.jp,ascii.jp,prtimes.jp, sortBypublishedAt, pageSize5, and apiKey[CONFIGURE_YOUR_API_KEY].
[CONFIGURE_YOUR_API_KEY] unchanged, both News API requests will fail. Replace it with your actual NewsAPI key.Step 4: Normalize and Combine Article Streams
Split each API response into individual article items and merge English and Japanese streams into a single flow.
- In Split EN Articles, keep the JavaScript code that flattens articles into individual items.
- In Split JP Articles, keep the same flattening code to split Japanese articles into items.
- Connect News API Request EN to Split EN Articles, and News API Request JP to Split JP Articles.
- Connect both Split EN Articles and Split JP Articles to Combine Article Streams.
Step 5: Set Up the AI Summarization and Field Mapping
Use OpenAI to create concise Japanese summaries, then map the output fields for the sheet append.
- Open OpenAI Summary Generator and set Model to
gpt-4.1-mini. - Keep the system prompt:
You are an editor summarizing news articles into concise Japanese sentences (~50 characters). No opinions, no emojis. - Ensure the user message content uses:
=Summarize the following article (~50 characters in Japanese). Title: {{$json["title"]}} Content: {{$json["description"] || $json["content"] || "No content"}}. - Credential Required: Connect your openAiApi credentials in OpenAI Summary Generator.
- In Map Output Fields, set summary to
{{ $json["message"]?.["content"] }}and link to{{ $node["Combine Article Streams"].json["url"] }}. - Connect Combine Article Streams → OpenAI Summary Generator → Map Output Fields.
Step 6: Configure Output to Google Sheets
Append summarized news data into your output sheet with the correct column mappings.
- In Append to Output Sheet, map columns as follows:
- URL →
{{ $('Combine Article Streams').item.json.url }} - Date →
{{ $('News API Request EN').item.json.articles[0].publishedAt }} - Keyword →
{{ $('Retrieve Sheet Rows').item.json['Keyword'] }} - Summary →
{{ $json.summary }} - Connect Map Output Fields to Append to Output Sheet.
Step 7: Test and Activate Your Workflow
Run a manual test to confirm that news articles are fetched, summarized, and appended correctly before enabling the schedule.
- Click Execute Workflow to run the flow manually.
- Verify that Retrieve Sheet Rows outputs rows with
SearchRequiredset toYes. - Confirm both News API Request EN and News API Request JP return articles, then check that OpenAI Summary Generator outputs a summary.
- Check your output Google Sheet to ensure new rows were appended with URL, date, keyword, and summary.
- Once verified, toggle the workflow to Active to enable scheduled runs.
Common Gotchas
- Google Sheets credentials can expire or need specific permissions. If things break, check the n8n credential connection status and the Sheet sharing settings 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.
- NewsAPI and OpenAI rate limits are real. If you suddenly track a lot more keywords, you may need to reduce queries, add batching, or tighten the OpenAI prompt so it doesn’t retry.
Frequently Asked Questions
About 30 minutes if your accounts are ready.
No. You’ll mainly connect accounts and paste in your Sheet ID, tab names, and API keys.
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 OpenAI API costs (usually a few dollars a month at light volume) and your NewsAPI 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 it’s one of the best tweaks. Add a “Client” column to your 01_Input tab, then extend the Map Output Fields step so each row in 02_Output stores the client name too. Many people also customize the OpenAI prompt to enforce brand voice (formal, casual, or industry-specific terms), and adjust the SearchRequired logic so only certain clients run on certain days.
Usually it’s an expired Google credential or the sheet permissions changed. Reconnect the Google Sheets credential in n8n, then confirm the Google account still has access to the exact spreadsheet ID you pasted into the nodes. If you duplicated the sheet, double-check you didn’t leave the old ID in the Retrieve Sheet Rows or Append node.
A lot, but it depends on your NewsAPI limits and your n8n plan.
Often, yes, because this workflow is doing a few things that get awkward fast in simpler tools. You’re merging two article streams (EN and JP), splitting items, and then summarizing each item through an AI model before writing structured rows to Sheets. n8n handles branching and iteration cleanly, and you can self-host if you don’t want execution limits to dictate how many keywords you track. Zapier or Make can still work if you only need one feed and a simple “send to sheet” action. If you’re unsure, Talk to an automation expert and get a straight recommendation.
Once this is running, your “daily news” stops being a daily task. The sheet fills itself, and you get your mornings back.
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.