AutomationFlowsAI & RAG › Transforming Scripts Into Engaging Instagram Reels with Blotato: Featuring…

Transforming Scripts Into Engaging Instagram Reels with Blotato: Featuring…

Original n8n title: Transforming Scripts Into Engaging Instagram Reels with Blotato: Featuring Unique Human Review

ByManeeshwar @maneeshwar on n8n.io

Stop wasting time on video editing! This template is designed for content creators and marketers who need a fast, scalable way to convert simple text scripts into polished, shareable AI-generated videos and publish them automatically to Instagram. The workflow includes a…

Event trigger★★★★☆ complexityAI-powered17 nodesInformation ExtractorGoogle Gemini ChatForm Trigger@Blotato/N8N Nodes BlotatoGmail
AI & RAG Trigger: Event Nodes: 17 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #9858 — we link there as the canonical source.

This workflow follows the Form Trigger → Gmail recipe pattern — see all workflows that pair these two integrations.

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
{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "4f75c299-1a90-4447-a4d1-1e54aeb36890",
      "name": "Information Extractor2",
      "type": "@n8n/n8n-nodes-langchain.informationExtractor",
      "position": [
        400,
        1632
      ],
      "parameters": {
        "text": "=Break down the script and write it in parts.\n\nScript:\n''\n{{ $json.Script }}\n''",
        "options": {},
        "schemaType": "manual",
        "inputSchema": "{\n\t\"type\": \"array\",\n\t\"items\": {\n\t\t\"type\": \"object\",\n\t\t\"properties\": {\n\t\t\t\"narration\": {\n\t\t\t\t\"type\": \"string\",\n\t\t\t\t\"description\": \"The piece of the script to be read aloud.\"\n\t\t\t},\n\t\t\t\"description\": {\n\t\t\t\t\"type\": \"string\",\n\t\t\t\t\"description\": \"A visual prompt/scene description for the video clip corresponding to the narration.\"\n\t\t\t}\n\t\t},\n\t\t\"required\": [\"narration\", \"description\"]\n\t}\n}"
      },
      "typeVersion": 1.2
    },
    {
      "id": "a3d4de2a-69b4-4375-a79c-389615868645",
      "name": "Google Gemini Chat Model2",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        480,
        1856
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "a4efa6cd-0086-4f27-b561-cdc90ff683d4",
      "name": "On form submission2",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        176,
        1632
      ],
      "parameters": {
        "options": {
          "appendAttribution": false
        },
        "formTitle": "Script",
        "formFields": {
          "values": [
            {
              "fieldType": "textarea",
              "fieldLabel": "Script"
            },
            {
              "fieldLabel": "Caption Text"
            }
          ]
        },
        "formDescription": "Please give the script for the video"
      },
      "typeVersion": 2.2
    },
    {
      "id": "640a8a8d-8014-4637-8c45-509ea5ab406d",
      "name": "Create video3",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        976,
        1632
      ],
      "parameters": {
        "resource": "video",
        "templateId": {
          "__rl": true,
          "mode": "list",
          "value": "/base/v2/ai-selfie-video/57f5a565-fd17-458b-be43-4a2d8ccaca75/v1",
          "cachedResultName": "AI Selfie Talking Video with Consistent Character"
        },
        "templateInputs": {
          "value": {
            "style": "realistic",
            "scenes": "={{ $json.output[0].toJsonString() }}",
            "aspectRatio": "9:16",
            "characterDescription": "A man"
          },
          "schema": [
            {
              "id": "scenes",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Scene Descriptions with narration (e.g. [{\"key\": \"value\"}])",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            },
            {
              "id": "style",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Realistic",
                  "value": "realistic"
                },
                {
                  "name": "Cartoon",
                  "value": "cartoon"
                },
                {
                  "name": "Anime",
                  "value": "anime"
                },
                {
                  "name": "Watercolor",
                  "value": "watercolor"
                },
                {
                  "name": "Oil-painting",
                  "value": "oil-painting"
                },
                {
                  "name": "Sketch",
                  "value": "sketch"
                },
                {
                  "name": "Cyberpunk",
                  "value": "cyberpunk"
                },
                {
                  "name": "Fantasy",
                  "value": "fantasy"
                },
                {
                  "name": "Minimalist",
                  "value": "minimalist"
                }
              ],
              "required": false,
              "displayName": "Visual Style",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            },
            {
              "id": "characterDescription",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Character Description",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            },
            {
              "id": "aspectRatio",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "16:9",
                  "value": "16:9"
                },
                {
                  "name": "9:16",
                  "value": "9:16"
                },
                {
                  "name": "1:1",
                  "value": "1:1"
                }
              ],
              "required": false,
              "displayName": "Aspect Ratio",
              "defaultMatch": false,
              "canBeUsedToMatch": false
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        }
      },
      "credentials": {
        "blotatoApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "e35219c5-76a5-4efa-b488-1b04520d2c13",
      "name": "Aggregate2",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        752,
        1632
      ],
      "parameters": {
        "options": {},
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "fieldToAggregate": "output"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "f7ff625d-30c7-4513-a38f-1445738ba3ce",
      "name": "Get video2",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        1264,
        1632
      ],
      "parameters": {
        "videoId": "={{ $json.item.id }}",
        "resource": "video",
        "operation": "get"
      },
      "credentials": {
        "blotatoApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "d05a1a53-650d-4777-b6ed-c1d36148f823",
      "name": "If2",
      "type": "n8n-nodes-base.if",
      "position": [
        1472,
        1616
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "aca6bfe8-108d-4e66-b34d-3b3b67779479",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $json.item.mediaUrl }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "b8c027b0-d116-446a-9f46-b4a58adac22d",
      "name": "Wait2",
      "type": "n8n-nodes-base.wait",
      "position": [
        1712,
        1744
      ],
      "parameters": {
        "amount": 40
      },
      "typeVersion": 1.1
    },
    {
      "id": "ed6a62fc-298d-426c-a32c-500763feb4e8",
      "name": "Create post2",
      "type": "@blotato/n8n-nodes-blotato.blotato",
      "position": [
        2528,
        1632
      ],
      "parameters": {
        "options": {},
        "accountId": {
          "__rl": true,
          "mode": "list",
          "value": "17066",
          "cachedResultUrl": "https://backend.blotato.com/v2/accounts/17066",
          "cachedResultName": "broccoliavacado"
        },
        "postContentText": "={{ $('On form submission2').item.json['Caption Text'] }}",
        "postContentMediaUrls": "={{ $('If2').item.json.item.mediaUrl }}"
      },
      "credentials": {
        "blotatoApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "e7c232bf-d105-4a85-88d8-2377eda2c8c5",
      "name": "Send message and wait for response1",
      "type": "n8n-nodes-base.gmail",
      "position": [
        2000,
        1648
      ],
      "parameters": {
        "sendTo": "your_email",
        "message": "=<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" style=\"border-collapse: collapse;\">\n  <tr>\n    <td align=\"center\" style=\"padding: 0; font-size: 0; line-height: 0;\">\n      <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"320\" style=\"width: 320px; border-collapse: collapse; margin: 0 auto;\">\n        <tr>\n          <td align=\"center\" style=\"padding: 0;\">\n            <video controls width=\"320\" height=\"569\" style=\"display: block; width: 320px; height: 569px; max-width: 100%; border: none;\">\n              <source src=\"{{ $json.item.mediaUrl }}\" type=\"video/mp4\">\n              <a href=\"{{ $json.item.mediaUrl }}\" style=\"font-family: Arial, sans-serif; font-size: 14px; color: #153643; text-decoration: underline;\">\n                Click here to watch the video.\n              </a>\n            </video>\n          </td>\n        </tr>\n      </table>\n    </td>\n  </tr>\n</table>",
        "options": {},
        "subject": "Video Approval Email",
        "operation": "sendAndWait",
        "approvalOptions": {
          "values": {
            "approvalType": "double"
          }
        }
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "faa5e4f4-9060-4e41-925d-24b52a0ffe7f",
      "name": "If3",
      "type": "n8n-nodes-base.if",
      "position": [
        2224,
        1648
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "17d73f3e-f9b4-4e22-89d2-63d87483c08d",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ $json.data.approved }}",
              "rightValue": ""
            }
          ]
        },
        "looseTypeValidation": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "b7eefc38-5bb4-4ac7-a13d-67ea9641a949",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        176,
        1248
      ],
      "parameters": {
        "width": 880,
        "height": 192,
        "content": "# [Click here and Sign up for Blotato](https://blotato.com/?ref=karne)\n# [Google Cloud console](https://console.cloud.google.com/)\n# [Youtube Tutorial](https://youtu.be/4UL1GrW09O0)"
      },
      "typeVersion": 1
    },
    {
      "id": "9cb38fb1-188d-4d6b-8134-3d6fb8f4149b",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        112,
        1504
      ],
      "parameters": {
        "color": 3,
        "width": 784,
        "height": 528,
        "content": "## Video script collection and formatting using AI"
      },
      "typeVersion": 1
    },
    {
      "id": "1e1697a2-a396-449b-8e85-d355212fd0b4",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        912,
        1504
      ],
      "parameters": {
        "color": 4,
        "height": 528,
        "content": "## Create Video using Blotato"
      },
      "typeVersion": 1
    },
    {
      "id": "3e289928-8f22-4ea6-a1e4-8de985aa3e7d",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1168,
        1504
      ],
      "parameters": {
        "color": 5,
        "width": 704,
        "height": 528,
        "content": "## Check if Video is generated every 40 seconds"
      },
      "typeVersion": 1
    },
    {
      "id": "a764de72-b2f9-49b3-bb0f-bad47e5025ae",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1888,
        1504
      ],
      "parameters": {
        "color": 6,
        "width": 496,
        "height": 528,
        "content": "## Human Approval using Gmail"
      },
      "typeVersion": 1
    },
    {
      "id": "3f04fecc-1126-47eb-b98e-df32ad3af6e4",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2400,
        1504
      ],
      "parameters": {
        "color": 4,
        "width": 304,
        "height": 528,
        "content": "## Post Video to Instagram if approved"
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "If2": {
      "main": [
        [
          {
            "node": "Send message and wait for response1",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If3": {
      "main": [
        [
          {
            "node": "Create post2",
            "type": "main",
            "index": 0
          }
        ],
        []
      ]
    },
    "Wait2": {
      "main": [
        [
          {
            "node": "Get video2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate2": {
      "main": [
        [
          {
            "node": "Create video3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get video2": {
      "main": [
        [
          {
            "node": "If2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create video3": {
      "main": [
        [
          {
            "node": "Get video2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission2": {
      "main": [
        [
          {
            "node": "Information Extractor2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Information Extractor2": {
      "main": [
        [
          {
            "node": "Aggregate2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model2": {
      "ai_languageModel": [
        [
          {
            "node": "Information Extractor2",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Send message and wait for response1": {
      "main": [
        [
          {
            "node": "If3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

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

Stop wasting time on video editing! This template is designed for content creators and marketers who need a fast, scalable way to convert simple text scripts into polished, shareable AI-generated videos and publish them automatically to Instagram. The workflow includes a…

Source: https://n8n.io/workflows/9858/ — 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

Customer Feedback Loop Analyzer. Uses formTrigger, lmChatGoogleGemini, gmail, slack. Event-driven trigger; 11 nodes.

Form Trigger, Google Gemini Chat, Gmail +4
AI & RAG

This n8n template automates scraping content from Skool communities using the Olostep API. It collects structured data from Skool pages and stores it in a clean format, making it easy to analyze commu

N8N Nodes Olostep, Form Trigger, HTTP Request +3
AI & RAG

It is ideal for businesses handling vendor invoices, reimbursement forms, or bulk document intake.

HTTP Request, Information Extractor, Google Gemini Chat +3
AI & RAG

Note: This template only works for self-hosted n8n.

Google Sheets Tool, Form Trigger, Form +3
AI & RAG

Manually adding important term dates to your calendar by hand? Stop! Automate it with this simple AI/LLM-powered document understanding and extraction template. This cool use-case can be applied to ma

HTTP Request, Information Extractor, Google Gemini Chat +1