Q. Do I need to analyse Brand Voice for every article?
Configured with Aggregate, Chain LLM, Html, HTTP Request, and additional nodes. Review the connections and setup before adapting this template.
Node categories in this workflow
- Trigger
- AI & models
- Web / API
- Transform
- Integration
Icons describe general node roles, inferred from node types. Inspect the parameters for the configured action.
Drag to pan; use + and − to zoom. Reconstructed from the exported node positions; nothing runs here. Dashed lines represent non-main connections. Full node names and notes appear below.
How it works
The exported workflow contains the following configured nodes. Their connections are shown above; inspect the JSON for the complete logic, expressions, and external actions.
| Node | Category | Type | Operation |
|---|---|---|---|
| When clicking ‘Test workflow’ | Trigger | Manual Trigger | See node parameters |
| OpenAI Chat Model | AI & models | OpenAI Chat Model | See node parameters |
| OpenAI Chat Model1 | AI & models | OpenAI Chat Model | See node parameters |
| OpenAI Chat Model2 | AI & models | OpenAI Chat Model | See node parameters |
| Extract Voice Characteristics | AI & models | Information Extractor | See node parameters |
| Get Blog | Web / API | HTTP Request | See node parameters |
| Get Article | Web / API | HTTP Request | See node parameters |
| Extract Article URLs | Transform | Html | extractHtmlContent |
| Split Out URLs | Transform | Split Out | See node parameters |
| Latest Articles | Transform | Limit | See node parameters |
| Extract Article Content | Transform | Html | extractHtmlContent |
| Combine Articles | Transform | Aggregate | See node parameters |
| Article Style & Brand Voice | Transform | Merge | See node parameters |
| Save as Draft | Integration | Wordpress | See node parameters |
| Capture Existing Article Structure | AI & models | Chain LLM | See node parameters |
| Markdown | Transform | Markdown | See node parameters |
| Content Generation Agent | AI & models | Information Extractor | See node parameters |
| New Article Instruction | Transform | Edit Fields | See node parameters |
Setup
- Download the JSON and import it into an isolated n8n instance. Leave the workflow inactive.
- Connect your own credentials through n8n’s credential store. Replace
REPLACE_WITH_*values with your resource identifiers. - Inspect API destinations, Code nodes, database queries, file paths, and outbound actions.
- Run with synthetic data and harmless destinations. Enable triggers only after checking the actual outputs.
Requirements
An n8n instance with the listed node types and compatible versions. Service-connected workflows may require accounts, credentials, or paid APIs.
Credential types declared in the source
openAiApiwordpressApi
Workflow notes
1. Import Existing Content
1. Import Existing Content
First, we'll need to gather existing content for the brand voice we want to replicate. This content can be blogs, social media posts or internal documents - the idea is to use this content to "train" our AI to produce content from the provided examples. One call out is that the quality and consistency of the content is important to get the desired results.
In this demonstration, we'll grab the latest blog posts off a corporate blog to use as an example. Since, the blog articles are likely consistent because of the source and narrower focus of the medium, it'll serve well to showcase this workflow.
2. Convert HTML to Markdown
2. Convert HTML to Markdown
Learn more about the Markdown node
Markdown is a great way to optimise the article data we're sending to the LLM because it reduces the amount of tokens required but keeps all relevant writing structure information.
Also useful to get Markdown output as a response because typically it's the format authors will write in.
3. Using AI to Analyse Article Structure and Writing Styles
3. Using AI to Analyse Article Structure and Writing Styles
Read more about the Basic LLM Chain node
Our approach is to first perform a high-level analysis of all available articles in order to replicate their content layout and writing styles. This will act as a guideline to help the AI to structure our future articles.
4. Using AI to Extract Voice Characteristics and Traits
4. Using AI to Extract Voice Characteristics and Traits
Read more about the Information Extractor node
Second, we'll use AI to analysis the brand voice characteristics of the previous articles. This picks out the tone, style and choice of language used and identifies them into categories. These categories will be used as guidelines for the AI to keep the future article consistent in tone and voice.
5. Automate On-Brand Articles Using AI
5. Automate On-Brand Articles Using AI
Read more about the Information Extractor node
Finally with this approach, we can feed both content and voice guidelines into our final LLM - our content generation agent - to produce any number of on-brand articles, social media posts etc.
When it comes to assessing the output, note the AI does a pretty good job at simulating format and reusing common phrases and wording for the target article. However, this could become repetitive very quickly! Whilst AI can help speed up the process, a human touch may still be required to add a some variety.
6. Save Draft to Wordpress
6. Save Draft to Wordpress
Learn more about the Wordpress node
To close out the template, we'll simple save our generated article as a draft which could allow human team members to review and validate the article before publishing.
Q. Do I need to analyse Brand Voice for every article?
Q. Do I need to analyse Brand Voice for every article?
A. No! I would recommend storing the results of the AI's analysis and re-use for a list of planned articles rather than generate anew every time.
Q. Can I use other media than blog articles?
Q. Can I use other media than blog articles?
A. Yes! This approach can use other source materials such as PDFs, as long as they can be produces in a text format to give to the LLM.
Try It Out!
Try It Out!
This n8n template demonstrates how to use AI to generate new on-brand written content by analysing previously published content.
With such an approach, it's possible to generate a steady stream of blog article drafts quickly with high consistency with your brand and existing content.
How it works
- In this demonstration, the n8n.io blog is used as the source of existing published content and 5 of the latest articles are imported via the HTTP node.
- The HTML node is extract the article bodies which are then converted to markdown for our LLMs.
- We use LLM nodes to (1) understand the article structure and writing style and (2) identify the brand voice characteristics used in the posts.
- These are then used as guidelines in our final LLM node when generating new articles.
- Finally, a draft is saved to Wordpress for human editors to review or use as starting point for their own articles.
How to use
- Update Step 1 to fetch data from your desired blog or change to fetch existing content in a different way.
- Update Step 5 to provide your new article instruction. For optimal output, theme topics relevant to your brand.
Need Help?
Join the Discord or ask in the Forum!
Happy Hacking!
Q. Do I need to analyse Brand Voice for every article?
Q. Do I need to analyse Brand Voice for every article?
Purpose and structure
This folder contains the Q. Do I need to analyse Brand Voice for every article? workflow. Its executable nodes use aggregate, chainLlm, html, httpRequest, informationExtractor, limit, lmChatOpenAi, manualTrigger, markdown, merge, set, splitOut, wordpress. The table and connection map below are derived from the JSON, not an inferred guarantee of behavior.
Setup
Import inactive. Configure your own credentials and replace REPLACE_WITH_* values. Review external destinations and Code nodes before running.
Entry points
When clicking ‘Test workflow’
Verification
Sanitized source candidate; not runtime-tested. This overview is generated from node metadata. Read the folder README for the connection map, credential types, and license.
Attribution
https://github.com/Zie619/n8n-workflows/blob/94007c1445d9258a7da116646b79473e7c7c3282/workflows/Splitout/0664_Splitout_Limit_Create_Webhook.json MIT; preserve source notices.