Operations 13 min read

Automate Multi‑Platform RSS Aggregation with n8n, Feishu Sheets, and Group Notifications

This guide walks through building an n8n workflow that periodically pulls hot articles from multiple RSS sources, enriches each item with a source tag, merges, filters, formats the data, writes it into a Feishu spreadsheet, and finally pushes a notification to a Feishu group, all without manual intervention.

Tech Minimalism
Tech Minimalism
Tech Minimalism
Automate Multi‑Platform RSS Aggregation with n8n, Feishu Sheets, and Group Notifications

Workflow Logic

The workflow runs on a daily schedule, fetches hot articles from several RSS feeds, adds a source field to identify the origin, merges the streams, filters items published within the last day, formats them for Feishu, writes the result to a Feishu spreadsheet, and sends a notification to a Feishu group.

Preparation

1. Feishu App Configuration

Log in to the Feishu Open Platform ( https://open.feishu.cn) and create a custom enterprise app.

Give the app a name and description, then click Create .

Enable the Document permission under Permission Management (search for 电子表格 and confirm).

Enable the Message permission so the app can send alerts.

Activate the Robot capability under Add Application Ability .

Create a version, fill in the version number and release notes, then publish to obtain the App ID and APP Secret.

2. Create a One‑Person Feishu Group and Add the Bot

Open Feishu, go to Messages → + → Create Group , name the group, and do not add other members (ignore the "at least two people" warning). Then add the custom robot to the group via Group Settings → Group Bot → Add Bot . If the group is reported as an external group, recreate it following the steps above.

3. Grant the Bot Access to a Feishu Folder

Create a folder to store the workflow output, share the folder with the bot, and set the bot’s permission to Editable . This provides the folder_token needed for later API calls.

4. Install the Feishu Community Node in n8n

In n8n, open Settings → Install and manually add the npm package n8n-nodes-feishu-lite. After installation, the Feishu nodes become available in the node palette.

Building the n8n Workflow

Node 1 – Schedule

Add a Schedule node, set Interval to Days , Period to 1 , and Trigger Time to 7am (Asia/Shanghai timezone).

Node 2 – RSS

Add two RSS nodes:

Baike hot articles: https://rss.aishort.top/?type=baidu WeChat latest articles: https://rss.aishort.top/?type=wasi Test the nodes – the Baidu feed returns about 100 items, the WeChat feed about 10.

Node 3 – Data Pre‑Processing (Code)

Insert a Code node that adds a source field to each item, indicating its origin. The code maps each RSS entry to a new object with the extra field.

Node 4 – Merge Data

Use a Merge node in append mode to combine the two streams into a single array. Adjust the number of branches if more feeds are added.

Node 5 – Filter Data

Filter items to keep only those published within the last 24 hours. The filter expression is new Date(Date.now() - 1 * 24 * 60 * 60 * 1000).

Node 6 – Aggregate Project

Aggregate the filtered items into one JSON payload using an Aggregate node, preparing it for a single write operation to Feishu.

Node 7 – Create Feishu Spreadsheet

Search for the feishu node, add it, and set the sheet title to the current date using the expression:

{{((d) => `${d.getFullYear()}年${(d.getMonth()+1).toString().padStart(2,'0')}月${d.getDate().toString().padStart(2,'0')}日`)(new Date())}}

The token for the target folder is taken from the folder URL.

Node 8 – Get Spreadsheet

Retrieve the worksheet ID of the newly created sheet (Feishu’s Excel API terminology).

Node 9 – Data Formatting (Code)

Convert the aggregated JSON into a two‑dimensional array that Feishu expects. The full JavaScript function is:

// Convert function
function convertToTableData(data) {
  const headers = ["标题","链接","发布时间","内容","摘要","来源"];
  const rows = data.map(item => [
    item.title || "",
    item.link || "",
    item.pubDate || "",
    item.content || "",
    item.contentSnippet || "",
    item.source || ""
  ]);
  return [headers, ...rows];
}

const inputData = $('Aggregate').item.json.data;
const tableData = convertToTableData(inputData);
$input.item.json.tableData = tableData;
return $input.item;

Node 10 – Write to Spreadsheet

Pass the formatted tableData and the sheet ID to the Feishu write node to populate the spreadsheet.

Node 11 – Notify Feishu Group

Obtain the custom robot’s Webhook URL from the group settings, then add a final Code node that builds a JSON payload:

const spreadsheetUrl = '[Your Spreadsheet Prefix]' + $input.first().json.data.spreadsheetToken;
const messageContent = '每日RSS文章资讯
' + spreadsheetUrl;
const feishuPayload = {
  "msg_type": "text",
  "content": { "text": messageContent }
};
const webhookUrl = '[Your Feishu Bot Webhook URL]';

try {
  const response = await this.helpers.httpRequest({
    method: 'POST',
    url: webhookUrl,
    headers: { 'Content-Type': 'application/json' },
    body: feishuPayload
  });
  return [{ json: { success: true, feishu_response: response } }];
} catch (error) {
  return [{ json: { success: false, error_message: error.message, error_details: error.response ? error.response.body : 'No response data' } }];
}

This sends a text message containing the spreadsheet link to the Feishu group.

Activation

After configuring all nodes, click Execute Workflow to test the end‑to‑end process, then press Activate in the top‑right corner. The workflow will now run automatically every morning at 7 am, populating the spreadsheet and notifying the group without further manual steps.

automationworkflowFeishuRSSn8n
Tech Minimalism
Written by

Tech Minimalism

Simplicity is the most beautiful expression of technology.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.