WeChat RSS to Google Sheets, clean summaries fast
Tracking WeChat public account articles sounds simple until you’re juggling links, dates, duplicates, and messy copy-pasted HTML. A “quick scan” turns into a research rabbit hole. And by the time you finally summarize it, the moment has passed.
This is the kind of work that quietly drains marketers building weekly insights, content creators hunting angles, and research leads trying to keep a team aligned. With WeChat RSS automation, you stop babysitting links and start collecting clean, relevant summaries in a spreadsheet you can actually use.
Below you’ll see how the workflow pulls posts from your WeChat RSS sources, filters recent items, cleans the content, checks relevance, creates Chinese summaries, then saves everything to Google Sheets (and Notion if you want it).
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: WeChat RSS to Google Sheets, clean summaries fast
flowchart LR
subgraph sg0["When clicking ‘Execute workflow’ Flow"]
direction LR
n0@{ icon: "mdi:database", form: "rounded", label: "Read Initial Links", pos: "b", h: 48 }
n1@{ icon: "mdi:database", form: "rounded", label: "Read RSS Links", pos: "b", h: 48 }
n2@{ icon: "mdi:swap-horizontal", form: "rounded", label: "IF (Filter by Date)", pos: "b", h: 48 }
n3@{ icon: "mdi:database", form: "rounded", label: "Save Initial Data", pos: "b", h: 48 }
n4@{ icon: "mdi:cog", form: "rounded", label: "RSS Read", pos: "b", h: 48 }
n5@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Execute workf..", 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/merge.svg' width='40' height='40' /></div><br/>Merge"]
n7["<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/>Filter Unique Links"]
n8@{ icon: "mdi:swap-vertical", form: "rounded", label: "Filtered Data", pos: "b", h: 48 }
n9@{ icon: "mdi:swap-vertical", form: "rounded", label: "pubDate&link Only", pos: "b", h: 48 }
n10@{ icon: "mdi:swap-vertical", form: "rounded", label: "pubDate Processing", pos: "b", h: 48 }
n11["<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/>Merge1"]
n12["<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/>Restore Full Data with Code"]
n13@{ icon: "mdi:robot", form: "rounded", label: "Relevance Classification for..", pos: "b", h: 48 }
n14@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model1", pos: "b", h: 48 }
n15@{ icon: "mdi:robot", form: "rounded", label: "Basic LLM Chain", pos: "b", h: 48 }
n16@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n17@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Fields - Relevant Articles", pos: "b", h: 48 }
n18@{ icon: "mdi:database", form: "rounded", label: "Google Sheets - Add relevant..", pos: "b", h: 48 }
n19["<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/>Clean HTML Content"]
n20["<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/notion.dark.svg' width='40' height='40' /></div><br/>Create a database page"]
n6 --> n9
n11 --> n12
n4 --> n10
n8 --> n3
n8 --> n11
n1 --> n4
n15 --> n17
n16 -.-> n15
n3 --> n6
n9 --> n7
n19 --> n13
n14 -.-> n13
n0 --> n6
n10 --> n2
n7 --> n11
n2 --> n8
n12 --> n19
n17 --> n18
n17 --> n20
n5 --> n0
n5 --> n1
n13 --> n15
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 n5 trigger
class n13,n15 ai
class n14,n16 aiModel
class n2 decision
class n0,n1,n3,n18,n20 database
class n7,n12,n19 code
classDef customIcon fill:none,stroke:none
class n6,n7,n11,n12,n19,n20 customIcon
The Problem: WeChat Research Turns Into Spreadsheet Chaos
If you rely on WeChat public account posts for market research, you already know the messy part isn’t “finding” articles. It’s everything after. Links get dropped into random docs. The same article gets saved twice. Dates are inconsistent, so “last 10 days” becomes a manual guess. And the content itself is a pain because WeChat pages often come with heavy HTML, which makes summaries harder and slower to write. After a few weeks, your tracking sheet stops being a source of truth and becomes a graveyard of half-finished notes.
It adds up fast. Here’s where it usually breaks down.
- You waste about 10 minutes per article just cleaning text and formatting before you can even read it properly.
- “Relevance” becomes subjective, so different people tag the same topic differently and your research gets noisy.
- Duplicates sneak in when multiple RSS sources repost the same piece, which means you review the same idea twice.
- Without a consistent summary format, sharing insights with a team turns into long messages and follow-up questions.
The Solution: WeChat RSS → Google Sheets + Notion, With AI Summaries
This workflow takes your WeChat RSS sources and turns them into a clean, searchable research pipeline. You start by storing RSS feed links (and any seed links you already have) in Google Sheets. When you run the workflow, it pulls new RSS items, normalizes publish dates, and filters to only the last 10 days so you’re not reprocessing old news. Next, it rebuilds the full article items, strips out HTML noise, and runs a relevance classifier so only the posts that match your topics move forward. Finally, an OpenAI-powered summary chain generates an insightful Chinese summary and writes the structured output to Google Sheets, with an optional Notion entry for a more “wiki-like” library.
The workflow starts with a manual run in n8n, pulling RSS sources from Google Sheets. Then it cleans and deduplicates links, checks recency, and uses AI to classify and summarize content. In the end, your team gets a consistent row in Google Sheets (and a Notion page if enabled) that’s ready to search, sort, and share.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you track 3 WeChat RSS sources and you typically review about 10 new posts a day. Manually, cleaning HTML, checking dates, tagging relevance, and writing a short Chinese summary can easily take about 15 minutes per post, so you’re spending roughly 2.5 hours daily. With this workflow, you run it once, wait a few minutes for processing, then skim the “relevant” rows in Google Sheets. Your time drops to about 20 minutes of review, not 2+ hours of busywork.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Google Sheets to store RSS sources and outputs.
- OpenAI to classify relevance and write Chinese summaries.
- WeChat RSS feed URL (from your RSS provider or generator).
Skill level: Beginner. You’ll connect accounts, paste IDs/URLs, and edit a couple of prompts.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
You trigger a run in n8n. The workflow is designed to run when you click “Execute workflow,” which is perfect for controlled batches while you’re getting comfortable.
It pulls RSS sources and seed links from Google Sheets. One sheet holds initial links, another holds your RSS feed sources. The workflow merges those inputs so everything flows through one system instead of scattered tabs.
It filters, deduplicates, and cleans the content. Publish dates are normalized, then anything older than 10 days is dropped. Links are deduplicated, full items are rebuilt, and the article body has HTML stripped so the AI is working with real text.
AI checks relevance and generates Chinese summaries. A topic classifier decides what’s worth keeping (based on your categories), then an LLM chain produces the summary and structured fields. Relevant results get appended to Google Sheets and can also be saved into Notion.
You can easily modify the relevance categories and the summary style based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Manual Trigger
This workflow starts on demand and immediately branches into two data collection paths.
- Add and keep the Manual Run Trigger node as the entry point.
- Confirm that Manual Run Trigger outputs to both Fetch Seed Links and Retrieve RSS Sources in parallel.
- Leave Manual Run Trigger parameters at defaults (no fields required).
Step 2: Connect Google Sheets
Two sheets provide source links and RSS feeds, and two sheets store outputs. All Google Sheets nodes require OAuth2 credentials.
- Open Fetch Seed Links and select the document with Document set to
[YOUR_ID]and Sheet set toSave Initial Links. Credential Required: Connect your googleSheetsOAuth2Api credentials. - Open Retrieve RSS Sources and set Document to
[YOUR_ID]and Sheet toRSS Links. Credential Required: Connect your googleSheetsOAuth2Api credentials. - In Store Initial Records, set Operation to
appendOrUpdateand map columns: link →{{ $json.link }}, title →{{ $json.title }}, pubDate →{{ $json.pubDate }}. Credential Required: Connect your googleSheetsOAuth2Api credentials. - In Append Relevant to Sheets, set Operation to
appendand map columns such as title →{{ $('Topic Relevance Classifier').item.json.title }}and summary →{{ $json.summary }}. Credential Required: Connect your googleSheetsOAuth2Api credentials.
Step 3: Configure RSS Parsing and Date Filtering
This path pulls RSS items, normalizes dates, filters by recency, and splits into parallel streams.
- In Parse RSS Feed, set URL to
={{ $json.rss_feed_url }}to read each feed from the sheet. - In Normalize Publish Date, set pubDate to
={{ new Date($json.pubDate).toISOString() }}and keep the other content fields as mapped in the node. - In Date Range Check, keep the condition that compares
={{ new Date($json.pubDate).getTime() }}to={{ new Date(Date.now() - 10* 24 * 60 * 60 * 1000).getTime() }}so only the last 10 days are processed. - In Map Filtered Fields, preserve the field mappings for pubDate, title, link, and content fields as shown.
- Confirm that Map Filtered Fields outputs to both Store Initial Records and Rejoin Streams in parallel.
10* 24 * 60 * 60 * 1000 value inside Date Range Check.Step 4: Deduplicate and Rebuild Full Items
This stage merges seeds with parsed items, removes duplicates, and restores full content for summarization.
- Ensure Fetch Seed Links and Store Initial Records both feed into Combine Inputs, then to Keep Date and Link.
- In Keep Date and Link, keep only pubDate and link with values set to
={{ $json.pubDate }}and={{ $json.link }}. - Leave Deduplicate Links as-is to filter unique links using its JavaScript logic.
- Confirm that Deduplicate Links and Map Filtered Fields both flow into Rejoin Streams, then into Rebuild Full Items.
- Keep Rebuild Full Items as-is so it reconstructs content-rich items for the next step.
Step 5: Set Up AI Classification and Summarization
Content is cleaned, classified for relevance, and summarized using the LLM chain connected to OpenAI models.
- Keep Strip HTML Content as-is to generate cleanedContent from RSS HTML.
- In Topic Relevance Classifier, set Input Text to
={{ $json.title }}{{ $json.cleanedContent }}and keep the category definitions. - OpenAI Chat Model A is connected as the language model for Topic Relevance Classifier — ensure credentials are added to OpenAI Chat Model A. Credential Required: Connect your openAiApi credentials.
- In LLM Summary Chain, set Text to
={{ $json.cleanedContent }}and keep Prompt Type set todefine. - OpenAI Chat Model B is connected as the language model for LLM Summary Chain — ensure credentials are added to OpenAI Chat Model B. Credential Required: Connect your openAiApi credentials.
Step 6: Configure Output Destinations
Relevant summaries are formatted and then written to Google Sheets and Notion simultaneously.
- In Prepare Relevant Output, keep mappings such as article_url →
={{ $('Topic Relevance Classifier').item.json.link }}, summary →={{ $json.text }}, fetched_at →={{$now}}, and publish_date →={{ $('Topic Relevance Classifier').item.json.pubDate.toDateTime().format('yyyy-MM-dd') }}. - Confirm that Prepare Relevant Output outputs to both Append Relevant to Sheets and Create Notion Entry in parallel.
- In Create Notion Entry, keep Resource set to
databasePageand map properties: article_url →={{ $json.article_url }}, summary →={{ $json.summary }}, fetched_at →={{ $json.fetched_at }}. Credential Required: Connect your notionApi credentials.
Step 7: Test and Activate Your Workflow
Run the workflow manually to verify each branch and output before activating it for production use.
- Click Execute Workflow to run from Manual Run Trigger.
- Verify that Manual Run Trigger starts both Fetch Seed Links and Retrieve RSS Sources in parallel and that the flow progresses through Parse RSS Feed, Date Range Check, and Rebuild Full Items.
- Confirm that relevant items reach Prepare Relevant Output, then appear in both the Append Relevant to Sheets output sheet and the Create Notion Entry database.
- Once validated, toggle the workflow Active for production use.
Common Gotchas
- Google Sheets credentials can expire or need specific permissions. If things break, check the n8n Credentials screen 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.
- 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 and sheets are ready.
No. You will mainly connect Google Sheets and OpenAI, then paste in your RSS URL and sheet IDs.
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, which are usually a few cents per batch of summaries depending on length.
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. Update the categories and decision rules in the “Topic Relevance Classifier” node to match your niche, then adjust the prompt in the “LLM Summary Chain” to control tone, length, and structure. Common tweaks include adding a “key takeaways” section, forcing a one-line headline, and tagging each item with a fixed taxonomy you use in Google Sheets. If you save to Notion, you can also map extra fields (like author, source account, or campaign tag) into your database properties.
Usually it’s expired authorization or the sheet isn’t shared with the connected Google account. Reconnect Google Sheets in n8n credentials, then confirm the documentId and sheet names match exactly (including “Save Initial Links” and “Save Processed Data”). If it still fails, check Google’s API access prompts and make sure your account can edit the file, not just view it.
Plenty for typical daily research, but the real limit depends on your n8n plan and your OpenAI usage.
For this workflow, n8n has a few advantages: more complex logic with unlimited branching at no extra cost, a self-hosting option for unlimited executions, and native AI-chain style nodes that are easier to control than many “one prompt” steps. Zapier or Make can still work if you only need “RSS to spreadsheet” with a lightweight formatter. The moment you want deduping, date normalization, a relevance classifier, and a structured summary format, the scenario usually gets awkward (and expensive) in simpler tools. If you want help picking the simplest option for your volume, Talk to an automation expert.
Once this is running, your WeChat research stops feeling fragile. The workflow handles the repetitive cleanup and summarization so your Google Sheet stays tidy, searchable, and genuinely useful.
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.