Social Media Auto-Poster (Google Sheets → Twitter & Instagram)
This workflow automatically:
- Pulls rows marked as
Pending
from a Google Sheet.
- Generates a formatted Instagram caption and HTML preview.
- Converts the HTML into an image via HCTI.io.
- Posts the content:
- As a tweet (text only) to Twitter (X).
- As a post (image + caption) to Instagram via the Facebook Graph API.
- Marks the row in Google Sheets as
Posted
with a timestamp.
It runs every 5 hours (configurable via the Schedule Trigger
).
Requirements
- Google Sheets API Credentials connected in n8n.
- HCTI.io account (HTML → Image API).
- Twitter (X) OAuth1 credentials.
- Facebook/Instagram Graph API access token (for the business account/page).
- A Google Sheet with at least these columns:
RowID
Caption
Desc
Hashtags
Status
Set Status
to Pending
for any row you want posted.
Setup
- Import the JSON workflow (
My_workflow.json
) into your n8n instance.
- Link all credentials (replace placeholders with your own API keys and tokens).
- Update the Google Sheet ID and Sheet Name inside the
Get row(s) in sheet
and Update Status Posted
nodes.
- (Optional) Adjust the posting interval in the
Schedule Trigger
node.
How It Works
- Trigger: Runs every 5 hours.
- Fetch Rows: Reads Google Sheets for rows with
Status = Pending
.
- Caption Generation: Combines
Desc
+ Hashtags
into final_caption
.
- HTML → Image: Converts caption to a styled 1080x1080 post.
- Social Posting:
- Posts the caption to Twitter (text only).
- Uploads the image + caption to Instagram.
- Update Status: Marks the row as
Posted on [timestamp]
.
Notes
- Facebook/Instagram tokens expire; refresh or use long-lived tokens.
- HCTI.io may require a paid plan for high volumes.
- Works best with a business Instagram account linked to a Facebook Page.
License
This workflow can be reused and adapted freely under the MIT license.