AutomationFlowsSocial Media › Tweet Scheduler

Tweet Scheduler

Tweet Scheduler. Uses googleSheets, twitter. Scheduled trigger; 7 nodes.

Cron / scheduled trigger★★★★☆ complexity7 nodesGoogle SheetsTwitter
Social Media Trigger: Cron / scheduled Nodes: 7 Complexity: ★★★★☆ Added:

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 →

Download .json
{
  "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.

Pro

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 →

More Social Media workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Social Media

Auto-like and repost latest tweets from accounts in Google Sheets Who’s it for

Google Sheets, Twitter
Social Media

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

LinkedIn, OpenAI, Google Sheets +3
Social Media

AI Posts Content Machine. Uses agent, stickyNote, outputParserStructured, lmChatAnthropic. Scheduled trigger; 28 nodes.

Agent, Output Parser Structured, Anthropic Chat +7
Social Media

This n8n workflow automates the process of promoting your latest YouTube videos on X (formerly Twitter). It ensures that posts are engaging, concise, and follow platform-specific requirements. Additio

Twitter, YouTube, Tool Calculator +6
Social Media

How it works

Agent, Output Parser Structured, Anthropic Chat +7