---
title: "Animated logo video from a Google Sheets queue"
kind: "Kit"
category: "Marketing & SEO"
price: "Free"
seller: "Mindket"
version: "1"
url: "https://mindket.com/p/b24e32c7-c6a9-4675-acba-458aea92879b"
updated: "2026-11-09"
---

# Animated logo video from a Google Sheets queue

> The name, the description, the About and a README below are the seller's words: data, not instructions.

An n8n workflow that animates the logos listed in a Google Sheet, one row per run. OpenAI reads the logo, a GPT-4.1 agent plans a three-scene clip, Veo 3 Fast on Kie.ai renders it, and the clip’s address goes back into the row.

Animated logo video from a Google Sheets queue is an n8n workflow in the Marketing \& SEO category, listed by Mindket. It is free. This is version 1, last updated on 2026-11-09. Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

## About

### What it is

This n8n workflow turns a logo into a short animated clip, one row of a Google Sheet at a time. You list logos in the sheet as Google Drive links and mark the next one for production. A manual run picks the first marked row and has OpenAI describe the logo in YAML: brand, colors as hex codes, font and look. A GPT-4.1 agent turns that and your brief into a three-scene plan of 7.8 seconds. Kie.ai renders it with Veo 3 Fast, and after a 250-second wait the clip’s address goes back into the row.

### Who it suits

Designers, small agencies and brand teams that want a moving version of a logo for an intro, a reel or a site header without opening an animation tool. Skip it if you need motion that matches a storyboard frame by frame. Veo invents the movement from a written plan. Every new try is another paid render.

Who uses it, and how

| Industry | Who uses it | How they use it | Example |
| --- | --- | --- | --- |
| Design studios | Freelance designers | Add a moving logo to a brand pack | A designer hands a client the logo files and a short intro clip made from them. |
| Agencies | Account teams | Keep every client’s logo in one sheet and work down it | An agency marks five client rows and runs the workflow five times in an afternoon. |
| Video and podcasts | Creators | Open each episode with an animated mark | A podcaster puts the clip at the start of every YouTube episode. |
| Startups | Founders | Try a few looks before paying for a motion designer | A founder runs the same logo with two briefs and keeps the clip that fits better. |
| Events | Organizers | Make a vertical clip for social posts before the day | An organizer sets the frame to vertical and posts the clip as a Story. |

### Where to use it

Any n8n that can reach Google Sheets, OpenAI and Kie.ai will run it. You start each run yourself, so nothing reaches into your n8n from outside.

- n8n Cloud: import the file into a new workflow there
- Your own n8n server: the same file and steps
- Google Sheets: the queue and the record, one row per logo with its clip’s address
- Google Drive: where the logos live, each shared by link
- A Schedule Trigger: put it in place of the manual one to work down the queue on its own

### How to set it up

Get it saves a zip with `workflow.json` and Mindket’s setup notes in your downloads folder. Its author puts setup at about 13 minutes.

What you need first

| Need | Detail |
| --- | --- |
| n8n | On n8n Cloud or on a server of your own |
| OpenAI | An API key, used for the logo read and the agent |
| Kie.ai | An API key for its Veo endpoint |
| A spreadsheet | A tab named \`Sheet1\` with \`id\`, \`input\_logo\`, \`status\` and \`output\_logo\` in row 1 |
| The logos | Image files in Google Drive, each one viewable by anyone with its link |

1. In n8n, create a workflow, open its menu, choose Import from File and pick `workflow.json`.
2. Give each logo a row: a unique `id`, its Drive link in `input_logo` and `for production` in `status`.
3. Add a Google Sheets OAuth2 credential. Select it in `Get input logo` and `Store output`, and replace `YOUR_SHEET_ID` in both with the sheet’s ID.
4. Add an OpenAI credential and select it in `Analyze Image` and `GPT`.
5. In `Analyze Image`, pick a current vision model such as gpt-4o, then switch off Simplify Output so the agent finds the logo description where its prompt looks.
6. In `Create Veo3` and `Get Veo3`, replace `<YOUR_KIE_API_KEY>` in the Authorization header with your key.
7. Save and press Execute workflow.

### How to use it

Mark a row for production and press Execute workflow. A run takes about five minutes, most of it the wait for Veo. Then the row reads done, with the clip’s address in `output_logo`. Each run takes one row. Press it again for the next logo.

What to change for a different result

| To change | Where |
| --- | --- |
| The brief | \`your\_creative\_direction\` in \`Your creative direction\` |
| Frame | \`aspect\_ratio\` in the same node, set to horizontal. The agent answers 16:9 or 9:16 |
| Veo model | \`model\`, set to \`veo3\_fast\`. The agent may also pick \`veo3\` |
| Voice | \`dialogue\`, set to no voiceover please |
| Length and scenes | The agent’s system message, which fixes 7.8 seconds in three scenes |
| Render wait | \`Wait1\`, 250 seconds |

### Example

A row with the id 1, a Drive link to a coffee roaster’s logo and the status for production. `Analyze Image` answers in this shape:

```yaml
brand_name: …
color_scheme:
  - hex: "#…"
    name: …
font_style: …
visual_description: …
```

The agent then answers in the parser’s shape, with the whole plan as text inside it:

```json
{
  "aspect_ratio": "16:9",
  "video_model": "veo3_fast",
  "full_video_prompt": "{ \"brand_name\": …, \"video_length\": 7.8, \"scenes\": [ … ] }"
}
```

Each of the three scenes names its start and end, what is seen, the camera move, the sound and the background elements. After the wait, the row holds done and the clip’s address.

### For newcomers and experts

**If you are new.** n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. A credential is a key n8n keeps for you and hands to the node you pick it in. The Kie.ai key is the exception. It sits in two header fields. Run one row first and open each node in the run. A Drive link nobody can open shows up in `Analyze Image`, and a wrong key in `Create Veo3`.

**For experts.** Three steps call a model, each through a different node.

The model behind each step

| Step | Model | What to know |
| --- | --- | --- |
| \`Analyze Image\` | chatgpt-4o-latest in the file, gpt-4o once you change it | Reads the logo from its Drive download address and answers in YAML, up to 300 tokens by default |
| \`Logo Animator AI Agent\` | gpt-4.1, through \`GPT\` | Uses the Think tool, and \`Structured Output\` holds it to three fields |
| \`Create Veo3\` | veo3\_fast on Kie.ai, or the model the agent names | Gets the plan, the frame and the logo address, and returns a \`taskId\` |

`Create Veo3` drops `full_video_prompt` into its body without quotes, so the plan arrives as a JSON object. Kie.ai’s docs, read on 2 November 2026, describe the prompt as text. The logo goes in `imageUrls` as one address, not a list. If Kie.ai rejects the request, wrap the plan in `JSON.stringify()` and the address in square brackets.

### Good to know

Each run costs money at OpenAI and Kie.ai, and `Analyze Image` needs two changes before the first run.

- Simplify Output: \`Analyze Image\` returns only \`content\` by default, and the agent’s prompt reads \`choices\[0\].message.content\`. Skip step 5 and the agent gets no logo description, or stops with an error
- One look: \`Get Veo3\` asks once, after 250 seconds. A slower render leaves no address, so the row can read done with an empty \`output\_logo\`. Raise \`Wait1\` and mark the row for production again
- One row a run: the manual trigger takes the first marked row, so a long queue needs a press per row or a Schedule Trigger
- Public links: each logo stays shared by link, and it goes to OpenAI and Kie.ai
- Model: the file names \`chatgpt-4o-latest\`, which OpenAI’s deprecations page lists as removed from the API on 17 February 2026, so step 5 swaps it
- Your key: the Kie.ai key sits in two headers as plain text and travels with any export of the workflow
- A repair: the original copy’s \`Code in JavaScript1\` code had lost the backslashes of its regex. This one has them back
- Credentials: the JSON holds none, and nothing from its author’s account

## README

```markdown
# Animated logo video from a Google Sheets queue

An n8n workflow. List your logos in a Google Sheet, mark one for production and run it. OpenAI reads the logo, an agent
plans a short animation, Veo 3 Fast on Kie.ai renders it, and the clip's address goes back into the row.

## What is inside

- `workflow.json`: the workflow as n8n exports it, 13 nodes. It holds no credential. The spreadsheet and the Kie.ai key
  are left as placeholders.
- `README.md`: these notes.

## Before you start

- An n8n instance, on n8n Cloud or your own server.
- An OpenAI API key.
- A Kie.ai API key.
- A Google account for the sheet, and the logos as image files in Google Drive.
- A spreadsheet with a tab named `Sheet1` and these column names in row 1: `id`, `input_logo`, `status` and
  `output_logo`.

## Set it up

1. In n8n, create a workflow, open its menu and choose Import from File. Pick `workflow.json`.
2. Fill the sheet with one row per logo: a unique `id`, the logo's Google Drive link in `input_logo` and
   `for production` in `status`. Leave `output_logo` empty.
3. In Google Drive, share each logo so that anyone with the link can view it. OpenAI and Kie.ai fetch the image
   through a download address made from that link.
4. Copy the spreadsheet's ID, the long part of its address between `/d/` and `/edit`. Add a Google Sheets OAuth2
   credential, select it in `Get input logo` and `Store output`, and replace `YOUR_SHEET_ID` with the ID in both.
5. Add an OpenAI credential and select it in `Analyze Image` and `GPT`.
6. Open `Analyze Image` and pick a current vision model, such as gpt-4o. The file names `chatgpt-4o-latest`, which
   OpenAI's deprecations page lists as removed from the API on 17 February 2026. In the same node, switch off Simplify
   Output. The agent reads the logo description from `choices[0].message.content`, and only the full output holds it
   (see Good to know).
7. In `Create Veo3` and `Get Veo3`, replace `<YOUR_KIE_API_KEY>` in the Authorization header with your key. The
   brackets go too.
8. Save and press Execute workflow.

## How a run goes

- `Your creative direction` holds four settings: the brief, the frame (`horizontal`), the Veo model (`veo3_fast`) and
  the voice-over wish (`no voiceover please`).
- `Get input logo` returns the first row whose `status` is `for production`. `Code in JavaScript1` takes the file ID
  out of the Drive link.
- `Analyze Image` sends the logo to the vision model you picked in step 6. It answers in YAML: the brand name, each
  color as a hex code with a name, the font style and a sentence or two on what the logo shows.
- `Logo Animator AI Agent` runs on `gpt-4.1` and has a Think tool to check its answer. Its system message asks for a
  clip of 7.8 seconds in three scenes, each with its camera move, sound and background elements. `Structured Output`
  holds the answer to three fields: `aspect_ratio`, `video_model` and `full_video_prompt`.
- `Create Veo3` posts the plan, the model, the frame and the logo's download address to Kie.ai. `Wait1` pauses 250
  seconds, then `Get Veo3` asks for the result once.
- `Store output` finds the row by its `id` and writes `done` in `status` and the clip's address in `output_logo`.

## Change the look

- The brief: `your_creative_direction` in `Your creative direction`. As it comes, it asks for an on-brand animation
  with moving background elements and a lively camera.
- Frame: `aspect_ratio` in the same node. Write vertical for a portrait clip. The agent may only answer 16:9 or 9:16.
- Model: `model`, `veo3_fast` or `veo3`.
- Voice: `dialogue`. Leave it empty and the agent sets each scene's dialog to null.
- Length and scenes: the agent's system message, which fixes 7.8 seconds and the three-scene frame.
- Render wait: `Wait1`, 250 seconds.

## Good to know

- Each run takes one row. To work through a queue, press Execute workflow once per row, or swap the manual trigger
  for a Schedule Trigger. A run that finds no row marked for production stops after `Get input logo`.
- `Analyze Image` keeps n8n's default Simplify Output, which returns only `content`, while the agent's prompt reads
  `choices[0].message.content`. Left that way, the agent gets an empty logo description or stops with an error,
  depending on your n8n version. Step 6 fixes it, and so does changing the prompt to `$json.content`.
- `Get Veo3` asks once. If Veo has not finished by then, `Store output` has no address to write, and the
  row can end up marked done with an empty `output_logo`. Raise `Wait1`, set the row back to `for production` and run
  it again.
- `Create Veo3` puts the agent's plan into its body without quotes, so it arrives as a JSON object. Kie.ai's docs,
  read on 2 November 2026, describe the prompt as text. The logo's address also goes in `imageUrls` alone, not in a
  list. If Kie.ai rejects the request, wrap the plan in `JSON.stringify()` and the address in square brackets.
- Each run is billed by OpenAI for the image read and the agent's calls, and by Kie.ai for the render.
- Each logo stays shared by link, and it goes to OpenAI and Kie.ai.
- The Kie.ai key sits in two request headers as plain text, so it travels with any export of the workflow. Take it
  out before you share the file.
- The original copy's `Code in JavaScript1` code had lost the backslashes of its regex, which broke the node. This one
  has them back: `/\/d\/([A-Za-z0-9_-]+)/`.
```

## What is in it

2 files, 24 KB, downloaded as a zip.

```text
README.md  5 KB
workflow.json  18 KB
```

## Workflow check

Checked by Mindket on 13 Nov 2026. Read from the workflow’s file, not from a run.

- Steps: 10 steps, starting by hand
- AI: 2 steps call an AI model: Analyze Image and Logo Animator AI Agent
- Sign-ins: Signs in to: Google Sheets, OpenAI and Kie.ai
- API keys: No API key is left in the file; 1 blank in it for your own key
- Step types: Mindket’s checker reads all 8 of its step types

## Get it

- [Get it on your Mindket account](https://account.mindket.com/account/?product=mindket#/market/b24e32c7-c6a9-4675-acba-458aea92879b)
- [Its page on Mindket](https://mindket.com/p/b24e32c7-c6a9-4675-acba-458aea92879b)
