Huashu Design
alchaincyf · Skill
Turns a one-line request in your AI agent into a finished design: a launch animation, a clickable app prototype, an editable slide deck, an infographic or a se…
An n8n chat that writes ad copy, video ad scripts and cold email sequences. A router agent picks the writer, and the copy goes to a Markdown-to-Google-Docs converter you supply.
Chat copywriter for ads, ad scripts and cold emails is an n8n workflow in the Marketing & SEO category, listed by Mindket. It is free. This is version 2, last updated on . Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.
Chat message
It starts when you send a message in n8n’s chat, such as a request for:
A Google Doc of ad copy, a video ad script or a cold email sequence for each chat request
What you need before you start.
Language models
Runs gpt-4.1-mini for the router agent and for the three writers.
NeedsOpenAI API key
Documents
Signs the request to your converter, which uses the token to create the document in your Drive.
NeedsA Google Docs OAuth2 credential, and a converter service of your own
Checked by Mindket on 13 Nov 2026
This n8n workflow is a chat that writes marketing copy and files it as a Google Doc. You ask n8n’s chat for ad copy, a video ad script or a cold email sequence. An agent on gpt-4.1-mini picks one of three tools, which call writing steps further down the same workflow. The finished copy goes to a Markdown-to-Google-Docs converter that you supply. The file came with eighteen nodes. Mindket rebuilt three and added one, because the OpenAI service they called has closed.
Marketers and small agencies who write many short pieces and want each one saved as a document they can share. The last step needs a converter of your own. Skip it if you have none and will not build one. Without it, the copy stays in the run’s data.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Marketing agencies | Copywriters | Ask for three ad versions for a client and send the doc | A copywriter asks for Meta ads for a gym’s January offer and shares the doc. |
| Online shops | Shop owners | Ask for a short video script for a new product | A soap maker asks for a 30-second script and films it on a phone. |
| B2B services | Founders who sell | Ask for a cold email sequence aimed at one kind of buyer | A bookkeeping firm asks for three emails to restaurant owners. |
| Freelancing | Solo marketers | Keep one doc for each request, titled by the agent | A freelancer builds a folder of drafts over a week of client requests. |
You need some n8n: importing a file, two credentials, three tool links and one converter address. Its author puts setup at about 10 minutes.
Any n8n with its chat open to you or your team. The doc lands in the Google Drive of the account behind the Google Docs credential.
Get it saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Set up the converter first, since the last node needs its address.
| Need | Detail |
|---|---|
| n8n | On n8n Cloud or on a server of your own |
| OpenAI | An API key. Both model nodes use gpt-4.1-mini |
| A Google Docs OAuth2 credential in n8n | |
| A converter | A service of yours that takes a title and Markdown and creates a Google Doc with the token it is sent |
workflow.json.Ad Copy Agent, Cold Email Copywriter and Ad_script_agent, pick this same workflow from the list. Each tool calls the lower half of this file.OpenAI Chat Model and OpenAI Chat Model1.HTTP Request.HTTP Request, replace YOUR_CONVERTER_URL with your converter’s address.The original posted the copy, with your Google Docs token, to a converter on its author’s own server. That address is gone. Yours receives a JSON body with fileName and output, the Markdown, and your Google token in a Bearer header. Run it somewhere you control, or swap HTTP Request for n8n’s Google Docs node. That node creates a document and inserts text, with the Markdown marks shown as typed.
Its three writing nodes called assistants kept in the author’s OpenAI account. OpenAI’s deprecations page, read on 2 November 2026, gives 26 August 2026 as the shutdown date of the Assistants API. So each is now an AI Agent of the same name with a short system message of Mindket’s, and the three share the new OpenAI Chat Model1.
Type a request in the chat, with the product, the audience, the offer and the tone. The agent passes it to one tool with a label: ad_copy, ad_script or cold_email. The writer answers, the agent wraps the copy in JSON with a title, and Code1 reads it. Then the converter makes the doc. The chat’s reply is whatever your converter answers, so have it return the document’s link.
| To change | Where |
|---|---|
| Routing and the final wrapper | The system message of Copy Assistant |
| How each kind of copy reads | The system messages of Ad copy agent, Ad Script Agent and Cold Email |
| How much the chat remembers | Simple Memory, 10 in the file |
| The doc’s title | The title the agent writes, from the rules in Copy Assistant |
| Models | OpenAI Chat Model for the router, OpenAI Chat Model1 for the three writers |
You type this in the chat.
Three Facebook ads for a yoga studio. Offer: first month half price. Audience: office workers. Tone: calm.
The agent calls Ad Copy Agent with ad_copy and your request, and Switch sends it on to Ad copy agent, which writes the three ads in Markdown. The agent then answers in this shape, and Code1 parses it:
{
"toolName": "ad_copy",
"response": {
"title": "…",
"markdown": "### Ad 1\n…"
}
}HTTP Request sends the title as fileName and the Markdown as output to your converter, which creates the doc.
If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. This file holds two workflows in one. The chat sits on the top line, and the writing steps its tools call sit on the bottom line. Ask for one short ad first. Then open both runs under Executions, the chat’s and the tool’s, to see what each half did.
For experts. The router’s three tools call this same file, and Switch picks the writer by the toolName the model sends.
| toolName | Writer node | What comes back |
|---|---|---|
ad_copy | Ad copy agent | Markdown, through Edit Fields3 |
ad_script | Ad Script Agent | Markdown, through Edit Fields1 |
cold_email | Cold Email | JSON with title and markdown, parsed by Code and split by Edit Fields |
A label the switch does not know ends the tool run with nothing. Code1 fails when the router adds words around its JSON.
It needs your own converter, and the router has to answer in clean JSON.
Code1 parses the router’s whole answer, so a sentence before the JSON stops the rungpt-4.1-mini-2025-04-14) for removal from the API on 14 January 2027, with gpt-6-luna as its replacementAn n8n chat that writes marketing copy. Ask it for ad copy, a short video ad script or a cold email sequence. A router
agent on gpt-4.1-mini hands the request to the right writer, and the finished copy goes to a Markdown-to-Google-Docs
converter that you supply.
workflow.json: the workflow, nineteen nodes and no sticky notes. It holds no credential.README.md: these notes.YOUR_CONVERTER_URL. Your token should only go to a service you run or trust.Ad copy agent, Ad Script Agent and Cold Email, called assistants kept in the author'sOpenAI Chat Model1 ongpt-4.1-mini.Copy Assistant's system message, soTouchnHi. They read \n again.workflow.json.Ad Copy Agent, Cold Email Copywriter and Ad_script_agent, pick this same workflow from the list. Each toolWhen Executed by Another Workflow.OpenAI Chat Model and OpenAI Chat Model1.HTTP Request.HTTP Request, replace YOUR_CONVERTER_URL with your converter's address.HTTP Request posts a JSON body with two fields, and n8n adds your Google token as a Bearer header:
{
"fileName": "<the title the router wrote>",
"output": "<the copy, in Markdown>"
}
Your service turns the Markdown into a Google Doc with that token and answers with the document's link. The chat
shows the converter's answer as its reply. Without a converter, replace HTTP Request with n8n's Google Docs node:
create a document with {{ $json.response.response.title }} as its title, then insert{{ $json.response.response.markdown }} as its text. The Markdown marks then show as typed.
When chat message received passes your message to Copy Assistant, the router. Simple Memory keeps the lasttoolName, which is ad_copy, ad_script or cold_email,query, your request.Switch sends the request to the matching writer.Ad copy agent and Ad Script Agent answer in Markdown, passed on by Edit Fields3 and Edit Fields1.Cold Email answers with JSON holding title and markdown, which Code parses and Edit Fields splits.toolName plus a response with title and markdown. Code1 strips any codeHTTP Request sends the title and the Markdown to your converter.Copy Assistant.Simple Memory.OpenAI Chat Model for the router, OpenAI Chat Model1 for the writers. Both use gpt-4.1-mini.Code1 parses the router's whole answer. A sentence before or after the JSON stops the run there.toolName the switch does not know ends the tool run with no answer.gpt-4.1-mini-2025-04-14) for removal from the API ongpt-6-luna as its replacement. Change both model nodes before then.README.md 5 KB workflow.json 23 KB
Updated by Mindket to the current version of this kit.
alchaincyf · Skill
Turns a one-line request in your AI agent into a finished design: a launch animation, a clickable app prototype, an editable slide deck, an infographic or a se…
op7418 · Skill
Skill that makes single-file HTML slide decks, slide illustrations and platform covers in two visual styles, with a presenter mode for rehearsal. For speakers…
alirezarezvani · Skill
Adds 411 ready-made skills for Claude Code and other coding agents, grouped by role from engineering and product to marketing, finance and compliance. Installs…
nerijs · Kit
A pixel art style add-on for Stable Diffusion XL that turns text prompts into pixel-style images, with an optional LCM LoRA for faster runs. For game makers, d…
LiconStudio · Kit
Keeps characters, clothing, objects and backgrounds consistent in generated video by feeding the model up to five reference images. A LoRA for LTX-2.5 in Comfy…
nhathoangfoto · Kit
A LoRA for FLUX.2 Klein 9B that puts a character into the pose shown by a mannequin reference while keeping the character's face and style. For artists and des…