The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"name": "Tweet Scheduler",
"nodes": [
{
"parameters": {
"documentId": {
"__rl": true,
"value": "REDACTED",
"mode": "id"
},
"sheetName": {
"__rl": true,
"value": "gid=0",
"mode": "list",
"cachedResultName": "Ideas",
"cachedResultUrl": "REDACTED"
},
"options": {
"returnFirstMatch": true
}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.6,
"position": [
280,
-120
],
"id": "3f73eba5-a7d1-4a42-8be4-84ae3db44394",
"name": "Get row(s) in sheet",
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"operation": "delete",
"documentId": {
"__rl": true,
"value": "REDACTED",
"mode": "list",
"cachedResultName": "Tweet Scheduler",
"cachedResultUrl": "REDACTED"
},
"sheetName": {
"__rl": true,
"value": "gid=0",
"mode": "list",
"cachedResultName": "Ideas",
"cachedResultUrl": "REDACTED"
}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.6,
"position": [
1440,
-140
],
"id": "a90a5a13-467c-470e-922b-7c6325c8416a",
"name": "Delete rows or columns from sheet",
"executeOnce": true,
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "3e656719-af52-4f43-81a5-257f97729d43",
"name": "Tweet",
"value": "={{ $json.Tweet }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
980,
-140
],
"id": "5d694539-0201-433e-b648-21a0ccd5431a",
"name": "Edit Fields1"
},
{
"parameters": {
"rule": {
"interval": [
{
"field": "cronExpression",
"expression": "0 * * * *"
}
]
}
},
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.2,
"position": [
0,
-120
],
"id": "c70dcbd7-d94e-4008-a159-bd59ef697761",
"name": "Schedule Trigger"
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "34b35e03-bd0f-4201-8bae-ba69e0c51422",
"leftValue": "={{ $json.Tweet }}",
"rightValue": "",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
720,
-120
],
"id": "1104f2ee-50c4-4f11-bf1e-3b853747ea12",
"name": "If"
},
{
"parameters": {
"text": "={{ $json.Tweet }}",
"additionalFields": {}
},
"type": "n8n-nodes-base.twitter",
"typeVersion": 2,
"position": [
1220,
-140
],
"id": "c36de26d-bb91-4f75-af10-c54d072254c7",
"name": "Create Tweet",
"credentials": {
"twitterOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {},
"type": "n8n-nodes-base.limit",
"typeVersion": 1,
"position": [
500,
-120
],
"id": "d8e0712d-9af6-4d2c-a2e2-0d2762d0a62c",
"name": "Limit"
}
],
"connections": {
"Get row(s) in sheet": {
"main": [
[
{
"node": "Limit",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields1": {
"main": [
[
{
"node": "Create Tweet",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "Get row(s) in sheet",
"type": "main",
"index": 0
}
]
]
},
"If": {
"main": [
[
{
"node": "Edit Fields1",
"type": "main",
"index": 0
}
]
]
},
"Delete rows or columns from sheet": {
"main": [
[]
]
},
"Create Tweet": {
"main": [
[
{
"node": "Delete rows or columns from sheet",
"type": "main",
"index": 0
}
]
]
},
"Limit": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
]
]
}
},
"active": true,
"settings": {
"executionOrder": "v1",
"timezone": "America/Edmonton",
"callerPolicy": "workflowsFromSameOwner"
},
"versionId": "REDACTED",
"meta": {
"templateCredsSetupCompleted": true
},
"id": "REDACTED",
"tags": []
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
googleSheetsOAuth2ApitwitterOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Tweet Scheduler. Uses googleSheets, twitter. Scheduled trigger; 7 nodes.
Source: https://gist.github.com/AhmedKaiz/b0267646629cfe802b4ab2b233643dd3 — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Auto-like and repost latest tweets from accounts in Google Sheets Who’s it for
Social Media AI Agent (Daily, Multi-Platform, Approval Gated). Uses slack, twitter, linkedIn, facebookGraphApi. Scheduled trigger; 11 nodes.
Managing content for multiple social media platforms manually is time-consuming and error-prone. This workflow automates content creation, image generation, approval flows, and publishing for LinkedIn
This workflow runs hourly to pull new items from an RSS feed, fetches and extracts full article text, uses Groq (via LangChain) to generate a Twitter/X thread and a LinkedIn post, then posts valid thr
AI Posts Content Machine. Uses agent, stickyNote, outputParserStructured, lmChatAnthropic. Scheduled trigger; 28 nodes.