This workflow corresponds to n8n.io template #12441 — we link there as the canonical source.
This workflow follows the HTTP Request → Informationextractor 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 →
{
"id": "vj3A8lh3cnUzPY6i",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Prompt-Driven FAQ Intelligence for SEO & Content Strategy with SE Ranking + OpenAI GPT 4.1-mini",
"tags": [
{
"id": "ddPkw7Hg5dZhQu2w",
"name": "AI",
"createdAt": "2025-04-13T05:38:08.053Z",
"updatedAt": "2025-04-13T05:38:08.053Z"
},
{
"id": "ZOwtAMLepQaGW76t",
"name": "Building Blocks",
"createdAt": "2025-04-13T15:23:40.462Z",
"updatedAt": "2025-04-13T15:23:40.462Z"
},
{
"id": "Kujft2FOjmOVQAmJ",
"name": "Engineering",
"createdAt": "2025-04-09T01:31:00.558Z",
"updatedAt": "2025-04-09T01:31:00.558Z"
},
{
"id": "qpxJxOMCv2x7Op5c",
"name": "SERP",
"createdAt": "2025-04-03T15:37:19.686Z",
"updatedAt": "2025-04-03T15:37:19.686Z"
}
],
"nodes": [
{
"id": "4f0e636b-6759-47a6-ada9-296b6bdc63dd",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1360,
-528
],
"parameters": {
"color": 7,
"width": 224,
"height": 240,
"content": "\n\nOpenAI GPT-4o-mini for the Structured Data Extraction and Data Mining Purposes"
},
"typeVersion": 1
},
{
"id": "b4df3733-6588-4ff3-8dd3-cd98991e7dfb",
"name": "When clicking \u2018Execute workflow\u2019",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-800,
32
],
"parameters": {},
"typeVersion": 1
},
{
"id": "0f69e60f-14db-4434-a228-1a671a3f53c5",
"name": "Set the Input Fields",
"type": "n8n-nodes-base.set",
"position": [
-576,
32
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "51fefe77-637c-456c-b037-e53b76e74fc5",
"name": "target_site",
"type": "string",
"value": "seranking.com"
},
{
"id": "24725cc6-edeb-4c8d-b8e7-31d58ae53822",
"name": "engine",
"type": "string",
"value": "ai-mode"
},
{
"id": "cf825d67-60e7-4505-b6be-d67d0fb8f98f",
"name": "source",
"type": "string",
"value": "us"
},
{
"id": "87c03f9b-1a33-4248-aa19-a005049aec92",
"name": "scope",
"type": "string",
"value": "domain"
},
{
"id": "a91a506b-7a78-4c09-9b4d-155bc375d9c9",
"name": "sort",
"type": "string",
"value": "volume"
},
{
"id": "b33d075c-2335-4ab8-95e4-b9f570345497",
"name": "sort_order",
"type": "string",
"value": "desc"
},
{
"id": "92e06b10-6fda-471a-bd7c-457b5c410362",
"name": "offset",
"type": "string",
"value": "0"
},
{
"id": "2a4bfd24-388d-4267-bf85-c07ce42475b3",
"name": "limit",
"type": "string",
"value": "100"
},
{
"id": "51c963a4-b3c7-46c1-adbf-449ac78e6629",
"name": "multi_keyword_included",
"type": "string",
"value": "[ [ { \"type\": \"contains\", \"value\": \"seo\" } ] ]"
},
{
"id": "5ecd5236-f485-4108-9dd6-51660368b4be",
"name": "multi_keyword_excluded",
"type": "string",
"value": "[ [ { \"type\": \"contains\", \"value\": \"seo\" }, { \"type\": \"contains\", \"value\": \"tools\" } ], [ { \"type\": \"contains\", \"value\": \"backlinks\" } ] ]"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "92d39b7c-dcc7-436e-a9af-0ca05e65e1a8",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-640,
-256
],
"parameters": {
"color": 7,
"width": 464,
"height": 768,
"content": "## SE Ranking Prompts by Target\n\nFetches real AI search prompts and answers for the selected domain and region. Serves as the primary source for user-intent and FAQ discovery."
},
"typeVersion": 1
},
{
"id": "5b3360c8-1002-42ed-ba0f-099a6fa03bf9",
"name": "SE Ranking Prompts by Target",
"type": "n8n-nodes-base.httpRequest",
"position": [
-352,
32
],
"parameters": {
"url": "https://api.seranking.com/v1/ai-search/prompts-by-target",
"options": {},
"sendQuery": true,
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"queryParameters": {
"parameters": [
{
"name": "target",
"value": "={{ $json.target_site }}"
},
{
"name": "scope",
"value": "={{ $json.scope }}"
},
{
"name": "source",
"value": "={{ $json.source }}"
},
{
"name": "engine",
"value": "={{ $json.engine }}"
},
{
"name": "sort",
"value": "={{ $json.sort }}"
},
{
"name": "sort_order",
"value": "={{ $json.sort_order }}"
},
{
"name": "offset",
"value": "={{ $json.offset }}"
},
{
"name": "limit",
"value": "={{ $json.limit }}"
},
{
"name": "filter[multi_keyword_included]",
"value": "={{ $json.multi_keyword_included }}"
},
{
"name": "filter[multi_keyword_excluded]",
"value": "={{ $json.multi_keyword_excluded }}"
}
]
}
},
"credentials": {
"httpBearerAuth": {
"name": "<your credential>"
},
"httpHeaderAuth": {
"name": "<your credential>"
}
},
"executeOnce": false,
"retryOnFail": true,
"typeVersion": 4.3
},
{
"id": "5e59e544-6872-4e8d-8061-56ba41c4d066",
"name": "Extract All Links",
"type": "n8n-nodes-base.code",
"position": [
48,
48
],
"parameters": {
"jsCode": "const prompts = $input.first().json.prompts || [];\n\nconst urls = prompts.flatMap(p => p.answer?.links || []);\n\nconst cleaned = urls\n .filter(Boolean)\n .map(u => u.trim())\n .filter(u => u.startsWith(\"http\"));\n\nreturn [{ json: { urls: cleaned } }];"
},
"typeVersion": 2
},
{
"id": "3fb3b324-b151-40af-8d43-1d040756f74c",
"name": "Extract QnA",
"type": "n8n-nodes-base.code",
"position": [
48,
208
],
"parameters": {
"jsCode": "const prompts = $input.first().json.prompts || [];\n\nconst qna = prompts\n .filter(p => p.prompt && p.answer?.text)\n .map(p => ({\n question: p.prompt,\n answer: p.answer.text\n }));\n\nreturn [{ \n json: { qna } \n}];\n"
},
"typeVersion": 2
},
{
"id": "8f3fb79e-5d1c-4484-894a-3866c0fe4d50",
"name": "AI QnA Zeroshot Classifier",
"type": "@n8n/n8n-nodes-langchain.informationExtractor",
"position": [
432,
-112
],
"parameters": {
"text": "=Classify each question below into exactly ONE category.\n\nCategories:\n- HOW_TO\n- DEFINITION\n- TOOLS\n- PRICING\n- COMPARISON\n- ALTERNATIVES\n- LEGAL\n- DECISION\n- TROUBLESHOOTING\n- GENERAL\n\nRules:\n- Steps or guidance \u2192 HOW_TO\n- What something is \u2192 DEFINITION\n- Tools or software \u2192 TOOLS\n- Cost or pricing \u2192 PRICING\n- Comparing options \u2192 COMPARISON\n- Alternatives \u2192 ALTERNATIVES\n- Legal, tax, EIN, trademark \u2192 LEGAL\n- Is it good / worth it \u2192 DECISION\n- Fixing issues \u2192 TROUBLESHOOTING\n- Otherwise \u2192 GENERAL\n\nQuestions:\n{{ $json.questions.toJsonString() }}\n",
"options": {},
"schemaType": "manual",
"inputSchema": "{\n \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n \"title\": \"AI QnA Classification Schema\",\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"required\": [\"id\", \"question\", \"category\", \"confidence\"],\n \"properties\": {\n \"id\": {\n \"type\": \"integer\",\n \"minimum\": 1,\n \"description\": \"Unique identifier for the question\"\n },\n \"question\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"description\": \"Original user question or prompt\"\n },\n \"category\": {\n \"type\": \"string\",\n \"enum\": [\n \"HOW_TO\",\n \"DEFINITION\",\n \"TOOLS\",\n \"PRICING\",\n \"COMPARISON\",\n \"ALTERNATIVES\",\n \"LEGAL\",\n \"DECISION\",\n \"TROUBLESHOOTING\",\n \"GENERAL\"\n ],\n \"description\": \"Zero-shot AI classified intent category\"\n },\n \"confidence\": {\n \"type\": \"number\",\n \"minimum\": 0,\n \"maximum\": 1,\n \"description\": \"Model confidence score between 0 and 1\"\n }\n },\n \"additionalProperties\": false\n }\n}\n"
},
"retryOnFail": true,
"typeVersion": 1.2
},
{
"id": "58022954-4b52-479d-ac5c-71edde422a06",
"name": "Extract Questions Only",
"type": "n8n-nodes-base.code",
"position": [
48,
-112
],
"parameters": {
"jsCode": "const prompts = $input.first().json.prompts || [];\n\nconst questions = prompts\n .filter(p => p.prompt && p.answer?.text)\n .map(p => ({\n question: p.prompt\n }));\n\nreturn [{ json: { questions } }];\n"
},
"typeVersion": 2
},
{
"id": "558be66b-ea89-4de3-a810-e155cdcef98b",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-144,
-256
],
"parameters": {
"color": 7,
"width": 464,
"height": 768,
"content": "## Custom Data Extraction\n\nExtracts questions, answers, and reference links from SE Ranking results. Structures raw API data into usable Q&A formats.\n"
},
"typeVersion": 1
},
{
"id": "ab37ff70-64bf-4faa-a2d4-9a5ea74e3ee1",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
352,
-256
],
"parameters": {
"color": 7,
"width": 784,
"height": 768,
"content": "## Data Enrichment\n\nApplies AI-based zero-shot classification to each question. Adds intent categories and confidence scores for smarter analysis. Aggregates and formats all enriched data into structured JSON. Prepares the output for SEO, content planning, or automation workflows.\n"
},
"typeVersion": 1
},
{
"id": "5fa4ce9b-fb17-42eb-a6d3-dba7e5f80bc9",
"name": "Extract Prompts",
"type": "n8n-nodes-base.code",
"position": [
48,
368
],
"parameters": {
"jsCode": "const prompts = $input.first().json.prompts|| [];\n\nreturn [{ \n json: { prompts } \n}];\n"
},
"typeVersion": 2
},
{
"id": "9032bb3e-ebd7-40f8-a0a7-05b6425a58c0",
"name": "Final Data Aggregation",
"type": "n8n-nodes-base.aggregate",
"position": [
992,
64
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData"
},
"typeVersion": 1
},
{
"id": "abcde815-bc69-42a8-8a8f-02a1c5a3b2b9",
"name": "Custom Data Aggregation",
"type": "n8n-nodes-base.aggregate",
"position": [
656,
288
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData",
"destinationFieldName": "custom_aggregate"
},
"typeVersion": 1
},
{
"id": "ef422c3c-15af-4e98-842d-104587cf76ca",
"name": "Perform Custom Data Merge",
"type": "n8n-nodes-base.merge",
"position": [
432,
256
],
"parameters": {
"numberInputs": 4
},
"typeVersion": 3.2
},
{
"id": "ae5ee163-1c36-4c2b-a4ff-7b4808a175bc",
"name": "OpenAI Chat Model for Zeroshot Classifier",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
432,
80
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {},
"builtInTools": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "007847c7-3aa5-45dd-a2da-a400eeb74899",
"name": "Write File to Disk",
"type": "n8n-nodes-base.readWriteFile",
"position": [
1488,
64
],
"parameters": {
"options": {},
"fileName": "=C:\\\\SERanking_PromptFAQ.json",
"operation": "write",
"dataPropertyName": "=data"
},
"typeVersion": 1
},
{
"id": "6d09c20b-7e7c-4e37-b125-e2f12a040347",
"name": "Create a Binary Data",
"type": "n8n-nodes-base.function",
"position": [
1264,
64
],
"parameters": {
"functionCode": "items[0].binary = {\n data: {\n data: new Buffer(JSON.stringify(items[0].json, null, 2)).toString('base64')\n }\n};\nreturn items;"
},
"typeVersion": 1
},
{
"id": "ee88415c-2d9f-4446-96b1-4a3b6c3b3b60",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1168,
-256
],
"parameters": {
"color": 7,
"width": 576,
"height": 768,
"content": "## Export Data Handling\n\nConverts enriched results into structured JSON output. Stores the final data for reporting and downstream automation."
},
"typeVersion": 1
},
{
"id": "9becea00-ad72-4210-8da0-698d79ed6ffc",
"name": "Merge Enriched Data",
"type": "n8n-nodes-base.merge",
"position": [
800,
64
],
"parameters": {},
"typeVersion": 3.2
},
{
"id": "254ecefc-102a-4a58-a7e5-7b683ec7a9c8",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1360,
-256
],
"parameters": {
"width": 496,
"height": 768,
"content": "## **How It Works**\n\nThis workflow automatically generates structured FAQs from AI search prompts using SE Ranking and OpenAI. It begins with a manual trigger where parameters such as target domain, search engine, region, filters, and keyword rules are defined. These inputs are sent to the SE Ranking *Prompts by Target* API to retrieve real-world AI search prompts and answers related to the domain.\n\n## **Setup Instructions**\n\n1. Configure credentials:\n\n * **SE Ranking API** (HTTP Header Authentication)\n * **OpenAI API** (GPT-4.1-mini)\n2. Review and update input parameters in the **Set the Input Fields** node (domain, filters, limits).\n3. Ensure the output file path in the **Write File to Disk** node matches your environment.\n4. Click **Execute Workflow** to generate the FAQ dataset.\n\n\n## **Customize**\n\n* Modify keyword include/exclude filters to target specific topics or intents.\n* Adjust the OpenAI classification categories or prompt rules for custom taxonomy needs.\n* Replace file export with database, CMS, or webhook nodes for direct publishing.\n* Schedule the workflow to run periodically for continuous FAQ and SERP insight updates.\n"
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "9a959fac-eb98-497a-b8da-b6a623bcff0a",
"connections": {
"Extract QnA": {
"main": [
[
{
"node": "Perform Custom Data Merge",
"type": "main",
"index": 2
}
]
]
},
"Extract Prompts": {
"main": [
[
{
"node": "Perform Custom Data Merge",
"type": "main",
"index": 3
}
]
]
},
"Extract All Links": {
"main": [
[
{
"node": "Perform Custom Data Merge",
"type": "main",
"index": 1
}
]
]
},
"Merge Enriched Data": {
"main": [
[
{
"node": "Final Data Aggregation",
"type": "main",
"index": 0
}
]
]
},
"Create a Binary Data": {
"main": [
[
{
"node": "Write File to Disk",
"type": "main",
"index": 0
}
]
]
},
"Set the Input Fields": {
"main": [
[
{
"node": "SE Ranking Prompts by Target",
"type": "main",
"index": 0
}
]
]
},
"Extract Questions Only": {
"main": [
[
{
"node": "AI QnA Zeroshot Classifier",
"type": "main",
"index": 0
},
{
"node": "Perform Custom Data Merge",
"type": "main",
"index": 0
}
]
]
},
"Final Data Aggregation": {
"main": [
[
{
"node": "Create a Binary Data",
"type": "main",
"index": 0
}
]
]
},
"Custom Data Aggregation": {
"main": [
[
{
"node": "Merge Enriched Data",
"type": "main",
"index": 1
}
]
]
},
"Perform Custom Data Merge": {
"main": [
[
{
"node": "Custom Data Aggregation",
"type": "main",
"index": 0
}
]
]
},
"AI QnA Zeroshot Classifier": {
"main": [
[
{
"node": "Merge Enriched Data",
"type": "main",
"index": 0
}
]
]
},
"SE Ranking Prompts by Target": {
"main": [
[
{
"node": "Extract All Links",
"type": "main",
"index": 0
},
{
"node": "Extract QnA",
"type": "main",
"index": 0
},
{
"node": "Extract Questions Only",
"type": "main",
"index": 0
},
{
"node": "Extract Prompts",
"type": "main",
"index": 0
}
]
]
},
"When clicking \u2018Execute workflow\u2019": {
"main": [
[
{
"node": "Set the Input Fields",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model for Zeroshot Classifier": {
"ai_languageModel": [
[
{
"node": "AI QnA Zeroshot Classifier",
"type": "ai_languageModel",
"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.
httpBearerAuthhttpHeaderAuthopenAiApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow automates the discovery and structuring of FAQs from real AI search behavior using SE Ranking and OpenAI. It fetches domain-specific AI search prompts and answers, then extracts relevant questions, responses, and source links. Each question is enriched with…
Source: https://n8n.io/workflows/12441/ — 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.
Community nodes can only be installed on self-hosted instances of n8n.
The Automate Etsy Data Mining with Bright Data Scrape & Google Gemini workflow is designed for eCommerce analysts, product researchers, and AI developers seeking to extract actionable insights from Et
This workflow is designed for: Recruiters, Talent Intelligence Teams, and HR tech builders automating resume ingestion. Developers and data engineers building ATS (Applicant Tracking Systems) or CRM d
This workflow automates AI-powered search insights by combining SE Ranking AI Search data with OpenAI summarization. It starts with a manual trigger and fetches the time-series AI visibility data via
Episode 18 Scary Stories TikTok final. Uses httpRequest, lmChatOpenAi, lmChatOllama, lmChatDeepSeek. Event-driven trigger; 83 nodes.