Can N8N used for setting up to extract Facebook posts from FB page to an excel sheet?

How to extract FB posts from a FB page and pas them to a Google sheet / Excel ?

Describe the problem/error/question

What is the error message (if any)?

Please share your workflow

(Select the nodes on your canvas and use the keyboard shortcuts CMD+C/CTRL+C and CMD+V/CTRL+V to copy and paste the workflow.)

Share the output returned by the last node

Information on your n8n setup

  • n8n version:
  • Database (default: SQLite):
  • n8n EXECUTIONS_PROCESS setting (default: own, main):
  • Running n8n via (Docker, npm, n8n cloud, desktop app):
  • Operating system:

Welcome tot the community @ChrisN8N8

check this out:

Sure it’s possible, you can do this with:

  • Facebook Page scraper by Apify with the Apify node
  • Edit fields node to turn it into the format you want
  • Google Sheets node to push the new rows into the Sheet you’re looking for.

Hey, are you looking to pull posts from a page you own/manage or someone else’s public page? Thatll change teh approach since Facebook’s API is pretty restrictive about what you can access these days

yeah you can use the facebook graph api node to pull posts from your page. youll need a page access token and the page id, then loop through the posts and write them to google sheets with the sheets node — just map the post fields (message, created_time, likes count, etc) to your sheet columns. if you need specific fields like reach or engagement, thats in the insights endpoint

Building on what @Benjamin_Behrens said - the Graph API approach is the way to go (free, no third-party dependency).

One thing to watch out for when using FB Graph API in n8n: the Page Access Token expires after 60 days (long-lived) or 1-2 hours (short-lived). In production this always catches people off guard.

The flow that works well:

  1. HTTP Request node → GET /{page-id}/posts?fields=message,created_time,likes.summary(true),comments.summary(true)&access_token={token}
  2. Loop through results (SplitInBatches)
  3. Google Sheets node → append rows

For the token issue, you can build a small n8n workflow that auto-refreshes your long-lived token before it expires and stores it in an environment variable or Google Sheets. I’ve dealt with this a lot building FB Messenger bots - the token management is honestly the hardest part, not the API call itself.

If you’re just doing a one-time export, a short-lived token from the Graph API Explorer works fine. For recurring scheduled exports, you’ll need a long-lived token strategy.

good addition — token expiry is exactly the thing that catches people off guard the first time in production. worth setting up the auto-refresh workflow from the start if you’re doing scheduled exports rather than retrofitting it after the first expiry incident.