This workflow follows the Chainllm → HTTP Request 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 →
{
"name": "Perplexity",
"nodes": [
{
"parameters": {},
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [
40,
480
],
"id": "0c462f91-1cc1-4668-9f32-571d8225e4fb",
"name": "When clicking \u2018Test workflow\u2019"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "e6099829-e804-4ecb-a9e2-7c731c663119",
"name": "keyword",
"value": "kh\u00f3a h\u1ecdc AI automation v\u1edbi n8n",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
260,
480
],
"id": "26794982-b5a0-49b4-bb02-f0d35910497f",
"name": "Edit Fields"
},
{
"parameters": {
"method": "POST",
"url": "https://api.perplexity.ai/chat/completions",
"authentication": "genericCredentialType",
"genericAuthType": "httpBearerAuth",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n \"model\": \"sonar\",\n \"messages\": [\n {\n \"role\": \"system\",\n \"content\": \"B\u1ea1n l\u00e0 m\u1ed9t Chuy\u00ean gia SEO v\u00e0 Nghi\u00ean c\u1ee9u, th\u00e0nh th\u1ea1o trong vi\u1ec7c ph\u00e2n t\u00edch \u00fd \u0111\u1ecbnh t\u00ecm ki\u1ebfm, nghi\u00ean c\u1ee9u c\u1ea1nh tranh, v\u00e0 t\u1ea1o n\u1ed9i dung chu\u1ea9n SEO. B\u1ea1n tu\u00e2n th\u1ee7 nghi\u00eam ng\u1eb7t c\u00e1c ti\u00eau chu\u1ea9n t\u1eeb t\u00e0i li\u1ec7u ch\u00ednh th\u1ee9c nh\u01b0 'Google Search Quality Evaluator Guidelines' (t\u1eadp trung v\u00e0o E-E-A-T: Experience, Expertise, Authoritativeness, Trustworthiness) v\u00e0 'Google Helpful Content Guidelines' (\u01b0u ti\u00ean n\u1ed9i dung h\u1eefu \u00edch, \u0111\u1ed9c \u0111\u00e1o, v\u00e0 \u0111\u00e1p \u1ee9ng nhu c\u1ea7u ng\u01b0\u1eddi d\u00f9ng).\"\n },\n {\n \"role\": \"user\",\n \"content\": \"Th\u1ef1c hi\u1ec7n c\u00e1c b\u01b0\u1edbc sau cho t\u1eeb kh\u00f3a '{{ $json.keyword }}', nh\u01b0ng ch\u1ec9 tr\u1ea3 v\u1ec1 prompt t\u1ed1i \u01b0u cu\u1ed1i c\u00f9ng:\\n\\n1. **Ph\u00e2n t\u00edch \u00fd \u0111\u1ecbnh t\u00ecm ki\u1ebfm**: X\u00e1c \u0111\u1ecbnh \u00fd \u0111\u1ecbnh ch\u00ednh c\u1ee7a ng\u01b0\u1eddi d\u00f9ng (th\u00f4ng tin, giao d\u1ecbch, \u0111i\u1ec1u h\u01b0\u1edbng, ho\u1eb7c th\u01b0\u01a1ng m\u1ea1i), c\u00e1c nhu c\u1ea7u c\u1ee5 th\u1ec3, v\u00e0 long-tail keywords li\u00ean quan.\\n2. **Nghi\u00ean c\u1ee9u c\u1ea1nh tranh**: T\u00ecm 5 b\u00e0i vi\u1ebft h\u00e0ng \u0111\u1ea7u tr\u00ean Google t\u1eeb ngu\u1ed3n uy t\u00edn (tr\u00e1nh video, qu\u1ea3ng c\u00e1o). Ph\u00e2n t\u00edch ti\u00eau \u0111\u1ec1, m\u00f4 t\u1ea3 meta, \u0111\u1ed9 d\u00e0i b\u00e0i vi\u1ebft, keyword gap (t\u1eeb kh\u00f3a \u0111\u1ed1i th\u1ee7 s\u1eed d\u1ee5ng m\u00e0 ta c\u00f3 th\u1ec3 nh\u1eafm \u0111\u1ebfn), backlink profile, v\u00e0 c\u00e1ch \u0111\u00e1p \u1ee9ng \u00fd \u0111\u1ecbnh t\u00ecm ki\u1ebfm.\\n3. **Ph\u00e2n t\u00edch outline v\u00e0 t\u1eeb kh\u00f3a**: X\u00e1c \u0111\u1ecbnh LSI keywords, c\u1ea5u tr\u00fac outline chi ti\u1ebft (bao g\u1ed3m ti\u00eau \u0111\u1ec1, ti\u1ec3u m\u1ee5c, FAQ, v\u00ed d\u1ee5 th\u1ef1c t\u1ebf), v\u00e0 c\u00e1c \u0111\u1eb7c \u0111i\u1ec3m SERP (featured snippets, PAA). \u0110\u1ea3m b\u1ea3o outline c\u00f3 m\u1ed9t ph\u1ea7n '\u0110\u1ecbnh ngh\u0129a kh\u00e1i ni\u1ec7m' li\u00ean quan \u0111\u1ebfn '{{ $json.keyword }}' v\u00e0 \u0111i\u1ec1u ch\u1ec9nh outline ph\u00f9 h\u1ee3p v\u1edbi \u00fd \u0111\u1ecbnh t\u00ecm ki\u1ebfm (v\u00ed d\u1ee5: danh s\u00e1ch s\u1ea3n ph\u1ea9m cho \u00fd \u0111\u1ecbnh th\u01b0\u01a1ng m\u1ea1i).\\n4. **T\u00ecm h\u00ecnh \u1ea3nh minh h\u1ecda**: T\u00ecm 3-5 h\u00ecnh \u1ea3nh t\u1eeb ngu\u1ed3n tr\u1ef1c tuy\u1ebfn uy t\u00edn (nh\u01b0 Unsplash, Pexels, ho\u1eb7c c\u00e1c trang y t\u1ebf n\u1ebfu ph\u00f9 h\u1ee3p) li\u00ean quan \u0111\u1ebfn '{{ $json.keyword }}'. Cung c\u1ea5p **li\u00ean k\u1ebft tr\u1ef1c ti\u1ebfp \u0111\u1ebfn file h\u00ecnh \u1ea3nh** (v\u00ed d\u1ee5: 'https://images.unsplash.com/photo-1234567890?ixlib=rb-4.0.3'), k\u00e8m m\u00f4 t\u1ea3 ng\u1eafn g\u1ecdn v\u1ec1 c\u00e1ch s\u1eed d\u1ee5ng (v\u00ed d\u1ee5: 'H\u00ecnh \u1ea3nh minh h\u1ecda tri\u1ec7u ch\u1ee9ng m\u1eabn ng\u1ee9a cho ti\u00eau \u0111\u1ec1 H2').\\n5. **T\u1ea1o prompt t\u1ed1i \u01b0u**: D\u1ef1a tr\u00ean c\u00e1c ph\u00e2n t\u00edch tr\u00ean, t\u1ea1o m\u1ed9t prompt chi ti\u1ebft \u0111\u1ec3 AI ti\u1ebfp theo sinh ti\u00eau \u0111\u1ec1, n\u1ed9i dung, v\u00e0 meta description d\u01b0\u1edbi d\u1ea1ng **JSON** v\u1edbi c\u1ea5u tr\u00fac {title, content, meta_description}. N\u1ed9i dung l\u00e0 **m\u00e3 HTML ch\u1ec9 ch\u1ee9a ph\u1ea7n body** (kh\u00f4ng bao g\u1ed3m <html>, <head>, hay CSS), ph\u00f9 h\u1ee3p \u0111\u1ec3 d\u00e1n tr\u1ef1c ti\u1ebfp v\u00e0o WordPress. Prompt ph\u1ea3i:\\n - Tu\u00e2n th\u1ee7 'Google Search Quality Evaluator Guidelines' (E-E-A-T) v\u00e0 'Google Helpful Content Guidelines'.\\n - **Ti\u00eau \u0111\u1ec1**: D\u01b0\u1edbi 60 k\u00fd t\u1ef1, ch\u1ee9a t\u1eeb kh\u00f3a ch\u00ednh '{{ $json.keyword }}' \u1edf \u0111\u1ea7u, s\u1eed d\u1ee5ng c\u00e2u h\u1ecfi tu t\u1eeb ho\u1eb7c s\u1ed1 li\u1ec7u (n\u1ebfu ph\u00f9 h\u1ee3p), v\u00e0 th\u00eam y\u1ebfu t\u1ed1 k\u00edch th\u00edch CTR (v\u00ed d\u1ee5: 'B\u00ed quy\u1ebft', 'H\u01b0\u1edbng d\u1eabn 2025').\\n - **Meta description**: 100-160 k\u00fd t\u1ef1, ch\u1ee9a t\u1eeb kh\u00f3a ch\u00ednh, t\u00f3m t\u1eaft n\u1ed9i dung, v\u00e0 y\u1ebfu t\u1ed1 thu h\u00fat CTR (v\u00ed d\u1ee5: 'Kh\u00e1m ph\u00e1 ngay!').\\n - **N\u1ed9i dung**: 1500-2000 t\u1eeb, s\u1eed d\u1ee5ng t\u1eeb kh\u00f3a ch\u00ednh '{{ $json.keyword }}' v\u00e0 LSI keywords v\u1edbi m\u1eadt \u0111\u1ed9 1-2%, c\u00f3 \u00edt nh\u1ea5t 6 ph\u1ea7n ch\u00ednh: Gi\u1edbi thi\u1ec7u, \u0110\u1ecbnh ngh\u0129a kh\u00e1i ni\u1ec7m, 3 ph\u1ea7n n\u1ed9i dung ch\u00ednh, K\u1ebft lu\u1eadn.\\n - Quy \u0111\u1ecbnh v\u0103n phong: chuy\u00ean nghi\u1ec7p, th\u00e2n thi\u1ec7n, d\u1ec5 ti\u1ebfp c\u1eadn; c\u00e2u ch\u1ee7 \u0111\u1ed9ng, \u0111o\u1ea1n v\u0103n ng\u1eafn (3-5 c\u00e2u), s\u1eed d\u1ee5ng c\u00e2u h\u1ecfi tu t\u1eeb v\u00e0 v\u00ed d\u1ee5 th\u1ef1c t\u1ebf.\\n - Bao g\u1ed3m FAQ d\u1ef1a tr\u00ean PAA, 2-3 li\u00ean k\u1ebft n\u1ed9i b\u1ed9 (d\u00f9ng th\u1ebb <a href> v\u1edbi anchor text ch\u1ee9a t\u1eeb kh\u00f3a li\u00ean quan), s\u1ed1 li\u1ec7u minh h\u1ecda, v\u00e0 l\u1eddi k\u00eau g\u1ecdi h\u00e0nh \u0111\u1ed9ng (v\u00ed d\u1ee5: 'B\u1ea1n c\u00f3 kinh nghi\u1ec7m g\u00ec v\u1edbi {{ $json.keyword }}? Chia s\u1ebb ngay!').\\n - T\u00edch h\u1ee3p 3-5 h\u00ecnh \u1ea3nh v\u1edbi th\u1ebb <img src=\\\"[URL]\\\" alt=\\\"[M\u00f4 t\u1ea3 alt text ch\u1ee9a t\u1eeb kh\u00f3a]\\\"> t\u1ea1i c\u00e1c v\u1ecb tr\u00ed c\u1ee5 th\u1ec3 (v\u00ed d\u1ee5: d\u01b0\u1edbi ti\u00eau \u0111\u1ec1 H2). Nh\u1ea5n m\u1ea1nh r\u1eb1ng h\u00ecnh \u1ea3nh ph\u1ea3i \u0111\u01b0\u1ee3c ch\u00e8n \u0111\u1ec3 t\u0103ng SEO v\u00e0 tr\u1ea3i nghi\u1ec7m ng\u01b0\u1eddi d\u00f9ng.\\n - Y\u00eau c\u1ea7u m\u00e3 HTML s\u1eed d\u1ee5ng th\u1ebb <h1>, <h2>, <h3>, <p>, <ul>, <li> cho c\u1ea5u tr\u00fac r\u00f5 r\u00e0ng, h\u1ee3p l\u1ec7, v\u00e0 t\u01b0\u01a1ng th\u00edch v\u1edbi WordPress.\\n\\n**\u0110\u1ecbnh d\u1ea1ng \u0111\u1ea7u ra**:\\n```\\n[Prompt t\u1ed1i \u01b0u \u0111\u1ec3 sinh JSON ch\u1ee9a title, content (HTML body), v\u00e0 meta_description, bao g\u1ed3m th\u1ebb <img> v\u1edbi li\u00ean k\u1ebft tr\u1ef1c ti\u1ebfp]\\n```\\n\\n**Ng\u00f4n ng\u1eef**: Ti\u1ebfng Vi\u1ec7t\\n**L\u01b0u \u00fd**: Kh\u00f4ng s\u1eed d\u1ee5ng AI \u0111\u1ec3 t\u1ea1o h\u00ecnh \u1ea3nh; ch\u1ec9 t\u00ecm v\u00e0 cung c\u1ea5p li\u00ean k\u1ebft tr\u1ef1c ti\u1ebfp \u0111\u1ebfn file h\u00ecnh \u1ea3nh t\u1eeb c\u00e1c ngu\u1ed3n uy t\u00edn nh\u01b0 Unsplash ho\u1eb7c Pexels.\"\n }\n ]\n}",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
540,
480
],
"id": "58e2c562-6c98-463b-84fc-18e7a5d063f8",
"name": "Outline",
"credentials": {
"httpBearerAuth": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"promptType": "define",
"text": "={{ $json.choices[0].message.content }}",
"hasOutputParser": true,
"batching": {}
},
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"typeVersion": 1.7,
"position": [
820,
480
],
"id": "b64ffeb7-b417-4157-be0f-21f70cb1e001",
"name": "Basic LLM Chain"
},
{
"parameters": {
"model": "google/gemini-2.5-flash",
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"typeVersion": 1,
"position": [
840,
760
],
"id": "3139f49b-bcce-476a-b7f2-878d6e51ba3c",
"name": "OpenRouter Chat Model",
"credentials": {
"openRouterApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"title": "={{ $json.output.title }}",
"additionalFields": {
"content": "={{ $json.output.content }}",
"status": "publish"
}
},
"type": "n8n-nodes-base.wordpress",
"typeVersion": 1,
"position": [
1180,
480
],
"id": "e3ef1ecd-90c9-44a4-afb3-bc98d5975e87",
"name": "Wordpress",
"credentials": {
"wordpressApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"jsonSchemaExample": "{\n\t\"title\": \"California\",\n\t\"content\": \"Post content\",\n \"meta_description\": \"\"\n}"
},
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"typeVersion": 1.2,
"position": [
1000,
700
],
"id": "12fe8608-4129-431d-a41e-71100282aa47",
"name": "Structured Output Parser"
}
],
"connections": {
"When clicking \u2018Test workflow\u2019": {
"main": [
[
{
"node": "Edit Fields",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields": {
"main": [
[
{
"node": "Outline",
"type": "main",
"index": 0
}
]
]
},
"Outline": {
"main": [
[
{
"node": "Basic LLM Chain",
"type": "main",
"index": 0
}
]
]
},
"OpenRouter Chat Model": {
"ai_languageModel": [
[
{
"node": "Basic LLM Chain",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Basic LLM Chain": {
"main": [
[
{
"node": "Wordpress",
"type": "main",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "Basic LLM Chain",
"type": "ai_outputParser",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "34f48033-51e3-4adf-95f8-305dcddbf7d5",
"meta": {
"templateCredsSetupCompleted": true
},
"id": "iZoNY2LiR4tWV1U1",
"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.
httpBearerAuthopenRouterApiwordpressApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Perplexity. Uses httpRequest, chainLlm, lmChatOpenRouter, wordpress. Event-driven trigger; 7 nodes.
Source: https://github.com/bnqtoan/workflows/blob/582abd68c061c79be577a742648d909f7fb9e08b/seo-content/Perplexity-seo.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
The best content automation in the market! This advanced workflow not only creates and publishes SEO-optimized blog posts to your WordPress website but also backs up all content and images to a design
The Ultimate Guide to Optimize WordPress Blog Posts with AI. Uses manualTrigger, googleSheets, openAi, wordpress. Event-driven trigger; 21 nodes.
This workflow automates the process of creating a complete SEO-optimized blog post, including generating content, titles, images, and meta tags, and publishing it on WordPress. It leverages AI models
This n8n workflow, along with its companion WordPress plugin (), automates the bulk optimization of your WordPress posts' Rank Math SEO titles and descriptions using AI.
This template is ideal for creators, bloggers, and automation enthusiasts who want to auto-generate blog posts from AI-generated content — without lifting a finger. Whether you're running a tech blog,