AutomationFlowsAI & RAG › Autoposttwitterredbubble

Autoposttwitterredbubble

AutoPostTwitterRedbubble. Uses baserow, bitly, openAi. Event-driven trigger; 14 nodes.

Event trigger★★★★☆ complexityAI-powered14 nodesBaserowBitlyOpenAI
AI & RAG Trigger: Event Nodes: 14 Complexity: ★★★★☆ AI nodes: yes 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
{
  "updatedAt": "2025-07-31T11:07:29.975Z",
  "createdAt": "2025-07-03T01:32:29.018Z",
  "id": "Lus7iPOlIEhutmxh",
  "name": "AutoPostTwitterRedbubble",
  "active": false,
  "isArchived": false,
  "nodes": [
    {
      "parameters": {},
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        -304,
        -48
      ],
      "id": "01ca2686-065c-431a-a8cb-2b0e62e2c9d4",
      "name": "When clicking \u2018Execute workflow\u2019"
    },
    {
      "parameters": {
        "databaseId": 8,
        "tableId": 35,
        "additionalOptions": {
          "filters": {
            "fields": [
              {
                "field": 290,
                "operator": "date_before",
                "value": "={{ new Date(Date.now() - 24 * 60 * 60 * 1000).toISOString().slice(0, 19) + 'Z' }}"
              },
              {
                "field": 290,
                "operator": "empty"
              }
            ]
          },
          "filterType": "OR"
        }
      },
      "type": "n8n-nodes-base.baserow",
      "typeVersion": 1,
      "position": [
        -48,
        -48
      ],
      "id": "1decf708-d57f-4abf-b595-4d4bcc328253",
      "name": "Baserow",
      "credentials": {
        "baserowApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "id": "e705cabc-1171-4e47-881b-2ad21b9b376d",
              "leftValue": "={{ $json.short_link_bitly }}",
              "rightValue": "",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        624,
        -64
      ],
      "id": "c00a366a-92a9-4236-b86f-677663f0912e",
      "name": "If"
    },
    {
      "parameters": {
        "authentication": "oAuth2",
        "longUrl": "={{ $('Separa_itens_baseRow').item.json.link_produto_original }}",
        "additionalFields": {
          "title": "={{ $json.title }}"
        }
      },
      "type": "n8n-nodes-base.bitly",
      "typeVersion": 1,
      "position": [
        1328,
        448
      ],
      "id": "a5fa2bb5-2e66-4f8b-b148-05bd76d368a8",
      "name": "Bitly",
      "credentials": {
        "bitlyOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "modelId": {
          "__rl": true,
          "value": "gpt-4.1-nano",
          "mode": "list",
          "cachedResultName": "GPT-4.1-NANO"
        },
        "messages": {
          "values": [
            {
              "content": "=You are a witty social media strategist specializing in creating engaging Twitter threads. Your task is to generate a Twitter thread promoting a product with a playful tone and subtle sarcasm that hooks readers and drives engagement.\n\n**Instructions:**\n1. Create a Twitter thread based on the product type and description provided\n2. Use US English exclusively\n3. Maintain a playful tone with subtle sarcasm throughout\n4. Each tweet should flow naturally into the next, maintaining narrative cadence\n5. Include a call-to-action (CTA) in every tweet directing to the product link in the field {product_link}\n6. Respect the character limit provided (this accounts for the URL space that will be added dynamically)\n7. Output ONLY valid JSON format without markdown, formatting, or additional text\n\n\n**Output Format:**\nReturn a valid JSON object with the following structure:\n\n{\n  \"thread\": [\n    {\n      \"tweet_number\": 1,\n      \"content\": \"Tweet content here\",\n      \"character_count\": 150\n    },\n    {\n      \"tweet_number\": 2,\n      \"content\": \"Tweet content here\",\n      \"character_count\": 145\n    }\n  ],\n  \"total_tweets\": 5,\n  \"theme\": \"playful_sarcasm\",\n  \"cta_included\": true\n}\n\n**Guidelines:**\n- Start with a hook that addresses a common pain point or desire\n- Use conversational language with strategic sarcasm\n- Include relevant emojis sparingly but effectively\n- Each tweet should end with a natural CTA phrase like \"Check it out:\", \"Get yours:\", \"Link below:\", etc.\n- Build anticipation and curiosity throughout the thread\n- End with a strong closing that reinforces the product's value\n- Keep tweets within the specified character limit\n- Ensure the thread tells a cohesive story about the product\n\n**Tone Examples:**\n- \"Because apparently we all need another gadget to feel complete...\"\n- \"Plot twist: this actually works...\"\n- \"Your wallet might hate me, but your [relevant area] will thank you...\"\n- \"Not to be dramatic, but this might change your life...\"\n\nGenerate the thread now based on the provided inputs.",
              "role": "system"
            },
            {
              "content": "=**Input Parameters:**\n- Product Type: {{ $json.product_type }}\n- Product Description: {{ $('If').item.json.product_description }}\n- Character Limit per Tweet: {{ 280 - $('If').item.json.short_link_bitly.length -1 }}"
            }
          ]
        },
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 1.8,
      "position": [
        1696,
        -80
      ],
      "id": "2f19c421-5281-40de-b731-c7ac55a7673f",
      "name": "OpenAI1",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "mode": "raw",
        "jsonOutput": "= {{ $json.message.content }}",
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        1424,
        -80
      ],
      "id": "54e448de-188d-4849-9647-df76c248c07c",
      "name": "product_type"
    },
    {
      "parameters": {
        "mode": "raw",
        "jsonOutput": "={{ $json.message.content }}",
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        1040,
        448
      ],
      "id": "f17c1ced-169c-4755-b0bb-d8776028302e",
      "name": "product_tittle_to_bitly"
    },
    {
      "parameters": {
        "modelId": {
          "__rl": true,
          "value": "gpt-4.1-nano",
          "mode": "list",
          "cachedResultName": "GPT-4.1-NANO"
        },
        "messages": {
          "values": [
            {
              "content": "=identifique o produto a partir da seguinte url e retorne um json valido sem utilizar marckdown ou qualquer outro formato apenas json, com a propriedade product_type\n{{ $json.link_produto_original }}"
            }
          ]
        },
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 1.8,
      "position": [
        928,
        -80
      ],
      "id": "043b53cb-fca7-4840-99a9-5cd9b833ef8c",
      "name": "genarete_product_type",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "modelId": {
          "__rl": true,
          "value": "gpt-4.1-mini",
          "mode": "list",
          "cachedResultName": "GPT-4.1-MINI"
        },
        "messages": {
          "values": [
            {
              "content": "=voc\u00ea \u00e9 um especialista em criar titulos para o bitly baseado na descri\u00e7\u00e3o do produto a seguir.\n {{ $json.product_description }}\nnao use markdown,\nresponda em formato json valido com chave title e product_type,\nidentifique o produto a partir da seguinte url e utilize ele no titulo gerado coloque o tipo do produto na chave product_type\n{{ $json.link_produto_original }}"
            }
          ]
        },
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 1.8,
      "position": [
        624,
        448
      ],
      "id": "c9a9c4c0-ba61-4294-bf95-f54c84fb4c9a",
      "name": "genarate_tittle_for_bitly",
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "mode": "raw",
        "jsonOutput": "= {{ $json.message.content }}",
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        2176,
        -80
      ],
      "id": "fb9209e8-e2de-4ae1-a68b-5a297f255574",
      "name": "twitter_thread_content"
    },
    {
      "parameters": {
        "batchSize": 1,
        "options": {}
      },
      "id": "4f9702a7-e2ff-4a83-ab1c-d1ffaf4a4ea8",
      "name": "Separa_itens_baseRow",
      "type": "n8n-nodes-base.splitInBatches",
      "typeVersion": 2,
      "position": [
        224,
        -48
      ]
    },
    {
      "parameters": {
        "operation": "update",
        "databaseId": 8,
        "tableId": 35,
        "rowId": "={{ $('Separa_itens_baseRow').item.json.id }}",
        "fieldsUi": {
          "fieldValues": [
            {
              "fieldId": 288,
              "fieldValue": "={{ $json.link }}"
            }
          ]
        }
      },
      "type": "n8n-nodes-base.baserow",
      "typeVersion": 1,
      "position": [
        1744,
        448
      ],
      "id": "2a750731-8be6-4597-8d4e-65deaeed2690",
      "name": "Update_link",
      "credentials": {
        "baserowApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "update",
        "databaseId": 8,
        "tableId": 35,
        "rowId": "={{ $json.baseRowId }}",
        "fieldsUi": {
          "fieldValues": [
            {
              "fieldId": 290,
              "fieldValue": "={{ $now }}"
            }
          ]
        }
      },
      "type": "n8n-nodes-base.baserow",
      "typeVersion": 1,
      "position": [
        2464,
        192
      ],
      "id": "55c852aa-c1db-49cc-af6e-3e8e91fefa36",
      "name": "Baserow1",
      "credentials": {
        "baserowApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "workflowId": {
          "__rl": true,
          "value": "QeRoi3zxnAYgeE8b",
          "mode": "list",
          "cachedResultName": "Post_Tweets"
        },
        "workflowInputs": {
          "mappingMode": "defineBelow",
          "value": {
            "link_image_mockup": "={{ $('Separa_itens_baseRow').item.json.link_image_mockup }}",
            "short_link_bitly": "={{ $('Baserow').item.json.short_link_bitly || $('Update_link').item.json.short_link_bitly  }}",
            "tweets": "={{ $json.thread }}",
            "reference": "={{ $('Baserow').item.json.id.toString() }}"
          },
          "matchingColumns": [
            "link_image_mockup",
            "Update_link_short_link_bitly",
            "short_link_bitly"
          ],
          "schema": [
            {
              "id": "link_image_mockup",
              "displayName": "link_image_mockup",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "short_link_bitly",
              "displayName": "short_link_bitly",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "tweets",
              "displayName": "tweets",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "reference",
              "displayName": "reference",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "canBeUsedToMatch": true,
              "type": "string",
              "removed": false
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": true
        },
        "options": {}
      },
      "type": "n8n-nodes-base.executeWorkflow",
      "typeVersion": 1.2,
      "position": [
        2480,
        -80
      ],
      "name": "Call Post_Tweets",
      "id": "35856e42-4e41-49a3-8db6-e97e5aef4a89"
    }
  ],
  "connections": {
    "When clicking \u2018Execute workflow\u2019": {
      "main": [
        [
          {
            "node": "Baserow",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Baserow": {
      "main": [
        [
          {
            "node": "Separa_itens_baseRow",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If": {
      "main": [
        [
          {
            "node": "genarete_product_type",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "genarate_tittle_for_bitly",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Bitly": {
      "main": [
        [
          {
            "node": "Update_link",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI1": {
      "main": [
        [
          {
            "node": "twitter_thread_content",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "product_type": {
      "main": [
        [
          {
            "node": "OpenAI1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "product_tittle_to_bitly": {
      "main": [
        [
          {
            "node": "Bitly",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "genarete_product_type": {
      "main": [
        [
          {
            "node": "product_type",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "genarate_tittle_for_bitly": {
      "main": [
        [
          {
            "node": "product_tittle_to_bitly",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "twitter_thread_content": {
      "main": [
        [
          {
            "node": "Call Post_Tweets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Separa_itens_baseRow": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update_link": {
      "main": [
        [
          {
            "node": "OpenAI1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Baserow1": {
      "main": [
        [
          {
            "node": "Separa_itens_baseRow",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Call Post_Tweets": {
      "main": [
        [
          {
            "node": "Baserow1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "staticData": null,
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "versionId": "7f0c798d-57c3-47dc-8c6d-1cc390dc7b20",
  "activeVersionId": null,
  "triggerCount": 0,
  "shared": [
    {
      "updatedAt": "2025-07-03T01:32:29.018Z",
      "createdAt": "2025-07-03T01:32:29.018Z",
      "role": "workflow:owner",
      "workflowId": "Lus7iPOlIEhutmxh",
      "projectId": "Fm4IyGowkpuhQseY"
    }
  ],
  "activeVersion": null,
  "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

AutoPostTwitterRedbubble. Uses baserow, bitly, openAi. Event-driven trigger; 14 nodes.

Source: https://github.com/AndersonNascimentoDosSantos/n8n-workflow-backup/blob/main/autoposttwitterredbubble-Lus7iPOlIEhutmxh.json — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

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

AI & RAG

Ask questions like “How much did I spend on food last month?” and get instant answers from your financial data — directly in Telegram.

Telegram Trigger, OpenAI, Google Sheets +2
AI & RAG

The Problem That it Solves

Google Drive Trigger, OpenAI, Google Drive +5
AI & RAG

This intelligent email automation workflow helps you maximize engagement through domain-based outreach. It utilizes AI-powered personalization and strategic follow-ups to increase response rates. The

Gmail, HTTP Request, Google Sheets +1
AI & RAG

Note: Now includes an Apify alternative for Rapid API (Some users can't create new accounts on Rapid API, so I have added an alternative for you. But immediately you are able to get access to Rapid AP

Form Trigger, Google Sheets Trigger, OpenAI +2
AI & RAG

Scrape ads – Pulls Facebook Ad Library data for "ai automation" keywords using Apify Filter & sort – Filters ads by page likes (&gt;1,000) and separates into videos, images, and text ads Analyze creat

HTTP Request, Google Drive, OpenAI +3