Generate Viral Facebook Posts with Gemini 2.0 & AI Image Generation

Go to Workflow
0 views
Built by Charles Charles
Created on June 08, 2026

Description

πŸš€ AI Facebook Post Generator - Complete Setup Guide

> Transform your content ideas into viral Facebook posts with AI-powered automation in just 30 minutes!

πŸ“‹ Prerequisites Checklist

What you'll need before we start:

βœ… n8n instance (cloud or self-hosted)
βœ… Facebook Business Page (not personal profile)
βœ… Google account with Sheets & Gmail access
βœ… Basic understanding of API credentials

⏱️ Estimated Setup Time: 30-45 minutes
🎯 Difficulty Level: Intermediate
πŸ’° Cost: Free tier available for all services

🎨 What You'll Build

By the end of this guide, you'll have:

πŸ“ Smart Content Form - Web form that captures your ideas
πŸ€– AI Content Optimizer - Gemini AI that polishes your writing
πŸ–ΌοΈ Auto Image Generator - Custom visuals created automatically
πŸ“Š Content Tracker - Google Sheets logging for analytics
πŸ“± Facebook Publisher - Direct posting to your page
πŸ“§ Success Notifications - Email confirmations with post links

πŸ”§ Step-by-Step Setup

Step 1: πŸ“˜ Facebook Integration Setup

πŸ”Έ 1.1 Create Your Facebook App

Why this matters: This gives your workflow permission to post on your behalf.

Navigate to Facebook Developers 🌐
Click "My Apps" β†’ "Create App"
Select "Business" as your app type
App Name: AI-Content-Poster (or your preferred name)
Hit "Create App"

> πŸ’‘ Pro Tip: Choose a descriptive name - you'll see this in your Facebook activity logs

πŸ”Έ 1.2 Configure App Settings

In your app dashboard: "Add a Product"
Find "Facebook Login" β†’ "Set Up"
Navigate to Settings β†’ Basic
App Domains: Add app.n8n.cloud (for n8n cloud users)
Save changes βœ…

πŸ”Έ 1.3 Generate Your Page Access Token

This is the key that unlocks posting powers! πŸ”‘

Go to Tools β†’ Graph API Explorer
Select your newly created app
Click "Generate Access Token"
Required Permissions:
pages_manage_posts
pages_read_engagement
pages_show_list
Select your target Facebook page
Copy the token (starts with EAAG...)

⚠️ Critical Step - Make Token Long-Lived:
In Graph API Explorer, make a GET request to:
/oauth/access_token?grant_type=fb_exchange_token&client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET&fb_exchange_token=YOUR_SHORT_TOKEN

πŸ”Έ 1.4 Find Your Page ID

Two methods to get your Page ID:

Method 1 - Direct from Facebook:
Visit your Facebook page
Click "About" tab
Scroll to find "Page ID"

Method 2 - API Explorer:
Use Graph API Explorer
GET request to: /me/accounts
Find your page in the response

Step 2: πŸ” Google Services Setup

πŸ”Έ 2.1 Enable Required APIs

Setting up your Google Cloud foundation:

Visit Google Cloud Console ☁️
Create new project or select existing
"APIs & Services" β†’ "Library"
Enable these APIs:
βœ… Google Sheets API
βœ… Gmail API
βœ… Google Drive API (optional)

πŸ”Έ 2.2 Create Service Account

This creates a "robot" account for automated access:

"APIs & Services" β†’ "Credentials"
"Create Credentials" β†’ "Service Account"
Name: ai-facebook-automation
"Create and Continue"
Skip role assignment β†’ "Continue"
"Done" βœ…

πŸ”Έ 2.3 Download Credentials File

Click your service account email
"Keys" tab β†’ "Add Key" β†’ "Create New Key"
Choose "JSON" format
Download and save securely πŸ“

> πŸ”’ Security Note: This file contains sensitive credentials. Store it safely!

πŸ”Έ 2.4 Prepare Your Google Sheets

Create your data tracking system:

πŸ“Š Sheet 1: Content Log
Purpose:** Track all generated content
Columns:**
A: Date (NgΓ y)
B: Short Content (Nα»™i dung ngαΊ―n)
C: Full Content (Nα»™i dung Δ‘αΊ§y Δ‘α»§)

πŸ“ Sheet 2: Input Tracking
Purpose:** Log form submissions
Columns:**
A: Date
B: Time
C: Content

πŸ”— Important: Share both sheets with your service account email (found in the JSON file)

Step 3: πŸ€– AI Services Configuration

πŸ”Έ 3.1 Get Your Gemini API Key

Power up your AI content generation:

Head to Google AI Studio 🎨
Sign in with Google account
"Create API Key"
Copy the key (starts with AIza...)

> πŸ’° Cost Info: Gemini offers generous free tier limits - perfect for getting started!

Step 4: βš™οΈ n8n Workflow Configuration

πŸ”Έ 4.1 Import the Magic ✨

Copy the workflow JSON from the template
In n8n: "Import from JSON"
Paste the workflow code
"Import" to load your new automation

πŸ”Έ 4.2 Configure Your Credentials

πŸ”‘ Facebook Graph API Setup:
Settings β†’ Credentials β†’ "Add Credential"
Search: "Facebook Graph API"
Access Token: Your Page Access Token from Step 1.3
Test connection β†’ Save as: Facebook Page Access

πŸ” Google Services Setup:
"Add Credential" β†’ "Google Service Account"
Upload your JSON file from Step 2.3
Test connection β†’ Save as: Google Services

🧠 Gemini AI Setup:
"Add Credential" β†’ "Google PaLM API"
Enter your Gemini key from Step 3.1
Save as: Gemini AI

πŸ”Έ 4.3 Customize Node Settings

πŸ“± Update Facebook Configuration:

In "Facebook Graph API" node:
Replace "113732581629527" with your Page ID from Step 1.4

In "Facebook Upload Img" node:
Replace "113732581629527" with your Page ID from Step 1.4

πŸ“Š Update Google Sheets:

In "save content" node:
Replace Document ID with your Content Log Sheet ID

In "Append row in sheet" node:
Replace Document ID with your Input Tracking Sheet ID

> πŸ’‘ Finding Sheet ID: It's the long string in your Google Sheets URL after /spreadsheets/d/

πŸ“§ Update Notification Email:

In "Send a message" node:
Replace [email protected] with your email address
Configure Gmail credentials

Step 5: πŸ§ͺ Testing & Validation

πŸ”Έ 5.1 Component Testing

πŸ“Š Test Google Sheets Connection:
Right-click "Append row in sheet" node
"Execute Node"
βœ… Verify test row appears in your sheet

πŸ€– Test Gemini AI:
Right-click "Basic LLM Chain" node
"Edit Input Data" β†’ Add test content
Execute β†’ βœ… Verify AI response quality

πŸ–ΌοΈ Test Image Generation:
Right-click "HTTP Request" node
Ensure valid prompt from previous step
Execute β†’ βœ… Check for base64 image data

πŸ“± Test Facebook Upload:
Run full workflow with test content
βœ… Check your Facebook page for new post
βœ… Verify image uploaded correctly

πŸ”Έ 5.2 End-to-End Victory Test πŸŽ‰

"Execute Workflow" on trigger node
Submit test content through the form
Monitor each node execution
🎊 Celebrate your first AI-generated post!

🎯 Success Indicators

Your setup is complete when you see:

βœ… Form accepts and processes content
βœ… AI generates optimized text + image prompt
βœ… Custom image appears in Facebook post
βœ… Content logged in Google Sheets
βœ… Success email in your inbox
βœ… Professional-looking post on your Facebook page

🚨 Troubleshooting Quick Fixes

Facebook Issues
Token Expired?** β†’ Generate new long-lived token
Permission Denied?** β†’ Check page admin rights
Invalid Page ID?** β†’ Double-check Page ID format

Google Sheets Problems
403 Forbidden?** β†’ Share sheet with service account
Sheet Not Found?** β†’ Verify Sheet ID in URL
Column Errors?** β†’ Match exact column names

AI Content Issues
Empty Responses?** β†’ Check Gemini API quotas
Poor Quality?** β†’ Adjust AI prompts
JSON Errors?** β†’ Validate parsing logic

🎨 Customization Ideas

Make it uniquely yours:

🎨 Brand Voice: Adjust AI prompts for your tone
⏰ Scheduling: Add time delays for strategic posting
πŸ“ˆ Analytics: Connect performance tracking tools
πŸ”„ Multi-Platform: Extend to Instagram, LinkedIn
πŸ‘₯ Team Features: Add approval workflows

πŸŽ‰ You Did It!

Congratulations! You've built an AI-powered content machine that will save you hours every week.

What's Next?
Test with different content types
Monitor performance in Google Sheets
Refine AI prompts for better results
Share your success with the community!

Need Help? 🀝
Join n8n Discord
Visit Community Forum
Check n8n Documentation

Ready to revolutionize your content creation? Your AI assistant is waiting! πŸš€

Nodes Used (7)

Basic LLM Chain
@n8n/n8n-nodes-langchain.chainLlm
Code
n8n-nodes-base.code
Facebook Graph API
n8n-nodes-base.facebookGraphApi
Gmail
n8n-nodes-base.gmail
Google Gemini Chat Model
@n8n/n8n-nodes-langchain.lmChatGoogleGemini
Google Sheets
n8n-nodes-base.googleSheets
HTTP Request
n8n-nodes-base.httpRequest