Ready-made recipe · social
Google Sheets → X (Formerly Twitter)
Write your posts in a Google Sheet; each new row is posted to X/Twitter.
Steps
- When when a new row is added in google sheets — Google Sheets node only reads
- Then post a tweet on twitter — X (Formerly Twitter) node can’t be undone
Fields to fill (3)
The file has every node wired up. These are the blanks only you can fill (your form, your sheet, your words).
| Node | What to do |
|---|---|
| Google Sheets | fill documentId (Document) |
| Google Sheets | fill sheetName (Sheet) |
| X (Formerly Twitter) | fill text (The text of the status update) |
Accounts to connect (2)
In n8n, pick or add a credential on each node — one of the types below.
- Google Sheets:
googleApiorgoogleSheetsTriggerOAuth2Api - X (Formerly Twitter):
twitterOAuth2Api
- Run it on Apify — type your own sentence, get the workflow back in seconds. Open Bridgecore on Apify (pay per use, $0.02–$0.05; nothing charged on errors).
- Ask your AI — add the MCP server
https://mcp.usebridgecore.com/to Claude, Cursor or any MCP client, then just say what should happen. Tools:do,find_recipe,plan_automation,make_n8n_workflow. Free to plan. - Ask me first — add “and ask me first” to any step (“… and post it on X and ask me first”) and the workflow sends you an Approve / Decline message (Slack, Telegram or Gmail) before that step runs. Nothing is sent, posted, deleted or paid until you tap Approve; no answer in a day = declined.
Get the n8n file
Download google-sheets-row-to-twitter.json
- Open a new, empty workflow in n8n.
- Open the workflow menu (⋯) and choose Import from File — or copy the JSON below and paste it onto the canvas (Ctrl/Cmd+V).
- Connect the accounts, fill the fields above, run one test, then turn the workflow on.
Or copy the JSON
{
"name": "Write your posts in a Google Sheet; each new row is posted to X/Twitter",
"nodes": [
{
"id": "n1",
"name": "Google Sheets Trigger",
"type": "n8n-nodes-base.googleSheetsTrigger",
"typeVersion": 1,
"parameters": {
"event": "rowAdded",
"documentId": {
"__rl": true,
"mode": "list",
"value": ""
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": ""
}
},
"position": [
240,
300
],
"notes": "step: when a new row is added in google sheets · reversibility: read-only"
},
{
"id": "n2",
"name": "X (Formerly Twitter)",
"type": "n8n-nodes-base.twitter",
"typeVersion": 2,
"parameters": {
"resource": "tweet",
"operation": "create",
"text": ""
},
"position": [
460,
300
],
"notes": "step: post a tweet on twitter · reversibility: irreversible"
}
],
"connections": {
"Google Sheets Trigger": {
"main": [
[
{
"node": "X (Formerly Twitter)",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1"
},
"active": false
}