Serve Vision Powers Businesses To Digital Heights

We’ve helped 54+ businesses across multiple industries grow from scratch to 7 & 8 figures. Yours could be next. If you don’t grow, you don’t pay. That’s our promise.

0 +

Happy Clients

Let’s Begin With a Call to Start Growing

On a quick call, share your goals, challenges, and vision. Together, we’ll uncover hidden opportunities and design a clear roadmap to unlock unstoppable business growth.

1

Discovery Call

We start with a quick discovery call to understand your business, goals, and challenges—so we can design a plan that truly fits.

2

Strategy Setup

Based on your insights, we build a clear, actionable roadmap with timelines, key milestones, and growth targets tailored to your brand.

3

Smooth Onboarding

Once you’re ready, we handle everything—calls, communication, and updates (even on WhatsApp)—for a stress-free start to your journey.

Meet the brands we proudly own under ServeVision Private Limited—creating measurable impact in education, sports, e-commerce, and digital marketing.

⏬ Open Details
⏬ Open Details
⏬ Open Details
⏬ Open Details

Building Future-Ready Digital Marketers

HSIM (Hindustan School of Internet Marketing) is Serve Vision’s bold step toward shaping the next wave of digital leaders. We don’t teach outdated theory — we deliver hands-on, practical training in SEO, advertising, and online growth strategies proven to drive results. Every program at HSIM is built to bridge the gap between classroom knowledge and real-world execution. Students don’t just learn; they run campaigns, solve business challenges, and master the exact tools used by top companies. 

Our mission is simple: to create professionals who stand out in competitive markets, perform with confidence, and build successful careers in the digital economy. As part of Serve Vision’s powerful ecosystem, HSIM is more than an institute — it’s a career accelerator, growth engine, and opportunity hub designed to unlock potential and deliver lasting success in today’s fast-evolving marketplace.

Why HSIM Stands Out

Verified Student Testimonials
0 +
Careers Transformed
0 +
Digital Marketing Institute in Karnal
No. 1
Recognised Certifications
0 +

Driving Conversions with Smart Solutions

Digierts, one of Serve Vision’s specialised service brands, is built to deliver performance-driven PPC marketing and e-commerce growth solutions. We don’t chase clicks — we create measurable results that optimise ad spend, boost conversions, and unlock seamless shopping experiences.Every campaign is powered by advanced targeting, data-backed strategies, and precision-optimised stores, ensuring your budget works harder and smarter. 

From lowering acquisition costs to scaling revenue, Digierts is designed to drive consistent, predictable growth that lasts. We don’t just advertise — we help businesses dominate their niche, maximise ROI, and build strong customer loyalty. As a trusted part of Serve Vision’s ecosystem, Digierts is more than a service. It’s your growth partner, sales accelerator, and revenue engine built to help you thrive confidently in today’s competitive online marketplace.

Stop Wasting Ad Spend — Let Digierts Turn Clicks Into Customers

Performance-Driven Results

Sales Generated with Proven ROI
$ 0 M+
E-Commerce Stores Scaled Profitably
0 +
D2C & Marketplace Sellers Trust Us
0 +
High-Converting Campaigns Launched
0 +

Sports Excellence with Local Impact

CAP Karnal, Serve Vision’s dedicated sports initiative, is designed to nurture raw talent and transform it into competitive excellence. More than just a training academy, CAP Karnal provides structured coaching, modern facilities, and disciplined mentorship that prepare young athletes for the highest levels of cricket. Here, passion meets performance. With a sharp focus on skill development, fitness, and mental strength, our academy empowers aspiring players to dream bigger and achieve more.

But we don’t stop at the field. Through local SEO and strategic marketing, CAP Karnal has become the region’s most trusted destination for parents and players seeking professional cricket training. This growth reflects Serve Vision’s broader mission: creating platforms that change lives and shape futures, whether through sports, digital innovation, or education. CAP Karnal isn’t just an academy — it’s where tomorrow’s cricket champions are born.

Impactful Growth Results

Students Trained Successfully
0 +
Cricket Academy in Karnal
# 1
Players Selected in District & State Teams
0 +
Kids Enrolled Annually
0 +

SEO Solutions for Lasting Visibility

Outreach Kart, Serve Vision’s specialised SEO platform, is designed to create authority-driven growth that delivers measurable results. With services like white-label link building, guest posting, digital PR, and content writing, Outreach Kart gives businesses scalable solutions to improve rankings, visibility, and trust. We don’t just build links — we build authority. Every campaign is crafted with advanced strategies that ensure lasting impact, sustainable growth, and a strong online presence. 

From SEO consulting and backlink strategies to blogger outreach and local guest post packages, we cover everything needed to stay competitive. Our focus is clear: ethical practices, measurable ROI, and consistent performance. By combining data-driven insights with powerful outreach, Outreach Kart helps brands generate organic traffic, dominate search results, and achieve long-term digital success. As part of Serve Vision’s ecosystem, Outreach Kart is more than SEO — it’s your foundation for digital dominance.

Proven SEO Outcomes

Quality Backlinks Built Across Niches
0 +
Verified Websites in Our Network
0 +
Happy Clients Worldwide
0 +
Manual Outreach
0 %

Maximising Sales with Proven Strategies

Image gallery marquee
Image gallery marquee
Image gallery marquee
Image gallery marquee

Account Management

Achieve 99% fulfillment accuracy with streamlined operations that boost efficiency, cut errors, and guarantee consistent sales growth for sellers.

What You Get

Product Listing Optimization

Optimised listings drive 70% more visibility and 2X conversions, skyrocketing search rankings while maximising product sales consistently.

What You Get

Business Growth Strategies

Strategic planning fuels 2.5X sales growth while cutting ad spend by 40% through tested, performance-driven methods.

What You Get

Transforming Ideas Into Powerful Web Experiences

After mastering Amazon Management and E-Commerce, our focus shifts to building minimalist, conversion-driven web solutions.

Blogging Website

Trending News Buzz

Developed Trending News Buzz with a user-friendly interface, responsive design, and optimised performance to deliver seamless blogging experiences globally.

Local SEO Agency for SMEs

SME Help

We built SME Help LLC with a responsive design, seamless functionality, and SEO-friendly framework to support small business growth.

Service Based

Wise Energy

Crafted a professional website for Wise Energy Solutions, showcasing renewable solar and heat pump installations across Lancashire with clarity.

Local Service Website

Chicago Pest Control

Developed a responsive website for Chicago Pest Control, highlighting local pest management services with clear navigation and customer-friendly design.

Experimented Automated Workflow Solutions

ChatGPT
Google Docx
WordPress
Google Sheet

Article Generation and Publishing Automation

Automate article generation, image placement, and publishing — saving hours while delivering consistent, high-quality, and engaging content effortlessly.

ChatGPT
Google Docx
Telegram
Google Sheet

Keyword-Based Article Generation via Google Sheets

Generate SEO-optimized content straight from Google Sheets — turning keywords into automated, high-quality articles seamlessly and efficiently.

ChatGPT
Google Docx
Code
Google Sheet

Custom Chatbot Designed for Your Business Needs

Build a custom AI chatbot synced with Google Drive—instantly search, summarize, and act on documents with real-time responses.

Introducing Kalpix

Create stunning images for FREE with AI! Edit, enhance, and customize visuals instantly—no cost, just fast, high-quality results ready for any project.

Simply input your prompt and let our AI instantly create stunning, high-quality images that match your exact vision.

 Unleash creativity by editing your images freely. Use powerful tools to adjust, enhance, and transform visuals to perfection.

Upload your photo and preferred background, and seamlessly merge both into a single image that’s customized just for you.

Easily remove unwanted backgrounds with one click. Create clean, professional-quality images that are ready for any project or purpose.

Upload model and product images. Our AI will generate high-quality, attention-grabbing product photos designed specifically for online sales.

Upload your photo and instantly transform it into a professional LinkedIn profile picture. Stand out and impress potential employers.

Let’s Review The Services We Offer Upfront

Dominate Amazon with optimized listings, top rankings, and higher conversions. Join the sellers who already trust us to manage and scale their brands.

Your website isn’t just a site — it’s a sales engine. We design high-converting, responsive websites built to attract, engage, and convert.

Be the #1 choice in your area. From Google Maps to local ads, we make sure customers in your city find you first — not your competitors.

Automate, scale, and stay ahead. Our AI-driven systems cut costs, boost efficiency, and bring futuristic customer engagement to your business today.

Get found, get clicks, get customers. Our proven SEO strategies put your brand on top of Google — driving traffic that keeps converting long-term.

Scale your store with end-to-end growth solutions — from setup to skyrocketing sales. We don’t just build stores, we build revenue machines.

Growth You Can Measure, Results You Can Trust

We Don’t Just Promise Growth — We Prove It With Results.Every strategy is tested, data-driven, and consistently delivers measurable growth, revenue, and long-term results clients trust.

Be Self-Aware

We constantly analyse performance, adapt quickly, and refine strategies, ensuring your business stays ahead of market changes.

No Results, No Payment

If you don’t see real growth, you don’t pay — our confidence ensures results or zero financial risk.

Custom Roadmaps

No generic templates — we design custom strategies for your goals, market, and audience, driving unstoppable long-term growth.

Dedicated Support

You’ll never feel alone — our expert team supports you at every stage, ensuring smooth progress always.

One Partner for All Growth

From e-commerce and SEO to Amazon, AI, and marketing, everything needed to scale is under one roof.

Maximized ROI

Every $ dollar invested works harder through optimized campaigns delivering consistent, measurable, and sustainable high-value returns.

Years of Experience
0 +
Skilled Professionals
0 +
Industries Served
0 +
Revenue Boosted
$ 0 M

Client Experiences Shared

{ "name": "Custom Chatbot Designed for Your Business Needs", "nodes": [ { "parameters": { "formTitle": "Upload your data to test RAG", "formFields": { "values": [ { "fieldLabel": "Upload your file(s)", "fieldType": "file", "acceptFileTypes": ".pdf, .csv", "requiredField": true } ] }, "options": {} }, "type": "n8n-nodes-base.formTrigger", "typeVersion": 2.2, "position": [ -128, 0 ], "id": "f7a656ec-83fc-4ed2-a089-57a9def662b7", "name": "Upload your file here", "webhookId": "82848bc4-5ea2-4e5a-8bb6-3c09b94a8c5d" }, { "parameters": { "dataType": "binary", "options": {} }, "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader", "typeVersion": 1.1, "position": [ 320, 160 ], "id": "94aecac0-03f9-4915-932b-d14a2576607b", "name": "Default Data Loader" }, { "parameters": { "content": "### Readme\nLoad your data into a vector database with the 📚 **Load Data** flow, and then use your data as chat context with the 🐕 **Retriever** flow.\n\n**Quick start**\n1. Click on the `Execute Workflow` button to run the 📚 **Load Data** flow.\n2. Click on `Open Chat` button to run the 🐕 **Retriever** flow. Then ask a question about content from your document(s)\n\n\nFor more info, check [our docs on RAG in n8n](https://docs.n8n.io/advanced-ai/rag-in-n8n/).", "height": 300, "width": 440, "color": 4 }, "type": "n8n-nodes-base.stickyNote", "position": [ -656, -64 ], "typeVersion": 1, "id": "0d07742b-0b36-4c2e-990c-266cbe6e2d4d", "name": "Sticky Note" }, { "parameters": { "content": "### 📚 Load Data Flow", "height": 460, "width": 700, "color": 7 }, "type": "n8n-nodes-base.stickyNote", "position": [ -176, -64 ], "typeVersion": 1, "id": "d19d04f3-5231-4e47-bed7-9f24a4a8f582", "name": "Sticky Note1" }, { "parameters": { "mode": "insert", "memoryKey": { "__rl": true, "value": "vector_store_key", "mode": "list", "cachedResultName": "vector_store_key" } }, "type": "@n8n/n8n-nodes-langchain.vectorStoreInMemory", "typeVersion": 1.2, "position": [ 64, -16 ], "id": "bf50a11f-ca6a-4e04-a6d2-42fee272b260", "name": "Insert Data to Store" }, { "parameters": { "mode": "retrieve-as-tool", "toolName": "knowledge_base", "toolDescription": "Use this knowledge base to answer questions from the user", "memoryKey": { "__rl": true, "mode": "list", "value": "vector_store_key" } }, "type": "@n8n/n8n-nodes-langchain.vectorStoreInMemory", "typeVersion": 1.2, "position": [ 1008, 224 ], "id": "09c0db62-5413-440e-8c13-fb6bb66d9b6a", "name": "Query Data Tool" }, { "parameters": { "options": { "systemMessage": "=You are an intelligent assistant that helps users manage and query their daily expenses through two primary tools:\n\n**AVAILABLE TOOLS:**\n1. **RAG System** - For general knowledge questions and expense-related advice\n2. **Daily Expense Google Sheet** - For specific expense data queries\n\n**GOOGLE SHEET STRUCTURE:**\n- **Timestamp**: Date and time of expense entry\n- **Email address**: User's email identifier\n- **Amount**: Expense amount\n- **Description**: What the expense was for\n- **Month**: Month of the expense\n\n**QUERY PROCESSING LOGIC:**\n\n**USE RAG SYSTEM WHEN:**\n- User asks general financial advice\n- Questions about budgeting tips\n- Expense categorization best practices\n- General knowledge questions unrelated to specific expense data\n- \"How to\" questions about expense management\n\n**USE GOOGLE SHEET WHEN:**\n- User queries about specific expense records\n- Requests for spending totals or summaries\n- Filtering expenses by time period, amount, or description\n- Analysis of spending patterns\n- Specific data retrieval requests\n\n**EXPENSE QUERY EXAMPLES AND RESPONSES:**\n\n**For Total Calculations:**\n- \"What were my total expenses in January?\" → Sum Amount where Month = \"January\"\n- \"How much did I spend on food last month?\" → Sum Amount where Description contains \"food\" and Month = [previous month]\n\n**For Specific Records:**\n- \"Show me all expenses over $100\" → Filter records where Amount > 100\n- \"What did I spend on December 15th?\" → Filter by Timestamp date\n\n**For Monthly Analysis:**\n- \"Compare my spending between January and February\" → Group by Month, sum Amount\n- \"Which month had the highest expenses?\" → Group by Month, find max total\n\n**RESPONSE GUIDELINES:**\n1. **Be specific** about the time period and criteria used\n2. **Format numbers** clearly (e.g., $150.50)\n3. **Provide context** - if showing partial data, mention the scope\n4. **Suggest insights** - point out patterns or trends when relevant\n5. **Offer next steps** - suggest related queries the user might find useful\n\n**ERROR HANDLING:**\n- If data isn't found, suggest alternative timeframes or criteria\n- If query is ambiguous, ask clarifying questions\n- If technical issues occur, explain simply and suggest retrying\n\n**TONE AND STYLE:**\n- Professional but friendly\n- Data-driven and accurate\n- Helpful and proactive in offering additional insights\n\nAlways determine which tool is appropriate based on whether the user needs specific data from their expense records or general knowledge/advice.\n\n\nNow Date and Time: {{ $now.setZone(\"Asia/Kolkata\").toFormat(\"dd-MMM-yyyy HH:mm:ss\") }}" } }, "type": "@n8n/n8n-nodes-langchain.agent", "typeVersion": 2, "position": [ 944, -16 ], "id": "579aed76-9644-42d1-ac13-7369059ff1c2", "name": "AI Agent" }, { "parameters": { "options": {} }, "type": "@n8n/n8n-nodes-langchain.chatTrigger", "typeVersion": 1.1, "position": [ 720, -16 ], "id": "9c30de61-935a-471f-ae88-ec5f67beeefc", "name": "When chat message received", "webhookId": "4091fa09-fb9a-4039-9411-7104d213f601" }, { "parameters": { "content": "### 🐕 2. Retriever Flow", "height": 460, "width": 680, "color": 7 }, "type": "n8n-nodes-base.stickyNote", "position": [ 608, -64 ], "typeVersion": 1, "id": "28bc73a1-e64a-47bf-ac1c-ffe644894ea5", "name": "Sticky Note2" }, { "parameters": { "content": "### Embeddings\n\nThe Insert and Retrieve operation use the same embedding node.\n\nThis is to ensure that they are using the **exact same embeddings and settings**.\n\nDifferent embeddings might not work at all, or have unintended consequences.\n", "height": 240, "width": 320, "color": 4 }, "type": "n8n-nodes-base.stickyNote", "position": [ 672, 448 ], "typeVersion": 1, "id": "0cf8c647-418c-4d1a-8952-766145afca72", "name": "Sticky Note3" }, { "parameters": {}, "type": "@n8n/n8n-nodes-langchain.embeddingsGoogleGemini", "typeVersion": 1, "position": [ 528, 448 ], "id": "48c33670-e565-452c-9fd5-802966e37e72", "name": "Embeddings Google Gemini", "credentials": { "googlePalmApi": { "id": "wSEQ0R08soazpR6k", "name": "Joydeep Gemeni APi" } } }, { "parameters": { "options": {} }, "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini", "typeVersion": 1, "position": [ 768, 192 ], "id": "fd44f4b5-d046-414c-ab82-afd100632859", "name": "Google Gemini Chat Model", "credentials": { "googlePalmApi": { "id": "wSEQ0R08soazpR6k", "name": "Joydeep Gemeni APi" } } }, { "parameters": { "authentication": "serviceAccount", "documentId": { "__rl": true, "value": "1vWze14yL2qD8yvj7cHV1n9FxifcEhoQiGQ1mm3sZeQ0", "mode": "list", "cachedResultName": "SV cash Expense", "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1vWze14yL2qD8yvj7cHV1n9FxifcEhoQiGQ1mm3sZeQ0/edit?usp=drivesdk" }, "sheetName": { "__rl": true, "value": 1296457484, "mode": "list", "cachedResultName": "Expense Form", "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1vWze14yL2qD8yvj7cHV1n9FxifcEhoQiGQ1mm3sZeQ0/edit#gid=1296457484" }, "combineFilters": "OR", "options": {} }, "type": "n8n-nodes-base.googleSheetsTool", "typeVersion": 4.7, "position": [ 1344, 224 ], "id": "dd684fa0-0777-4ca6-a97e-952dd60d4c28", "name": "Daily Expense", "credentials": { "googleApi": { "id": "gLgJ7G0Yvh27paYT", "name": "Data-analyst Google Service Account account" } } } ], "pinData": {}, "connections": { "Upload your file here": { "main": [ [ { "node": "Insert Data to Store", "type": "main", "index": 0 } ] ] }, "Default Data Loader": { "ai_document": [ [ { "node": "Insert Data to Store", "type": "ai_document", "index": 0 } ] ] }, "Query Data Tool": { "ai_tool": [ [ { "node": "AI Agent", "type": "ai_tool", "index": 0 } ] ] }, "When chat message received": { "main": [ [ { "node": "AI Agent", "type": "main", "index": 0 } ] ] }, "Embeddings Google Gemini": { "ai_embedding": [ [ { "node": "Query Data Tool", "type": "ai_embedding", "index": 0 }, { "node": "Insert Data to Store", "type": "ai_embedding", "index": 0 } ] ] }, "Google Gemini Chat Model": { "ai_languageModel": [ [ { "node": "AI Agent", "type": "ai_languageModel", "index": 0 } ] ] }, "Daily Expense": { "ai_tool": [ [ { "node": "AI Agent", "type": "ai_tool", "index": 0 } ] ] } }, "active": false, "settings": { "executionOrder": "v1" }, "versionId": "8fe6a330-c2fe-44bd-8dc3-5c0f08445f54", "meta": { "templateId": "rag-starter-template", "templateCredsSetupCompleted": true, "instanceId": "1f1785d995b3fa32ab6b8219168659331dbe1459fee9ca0c94987e0285ae2676" }, "id": "XMzrW1DpKCxRdodE", "tags": [] }
{ "name": "Keyword-Based Article Generation via Google Sheets", "nodes": [ { "parameters": { "options": {} }, "type": "n8n-nodes-base.splitInBatches", "typeVersion": 3, "position": [ -736, 384 ], "id": "019cddd8-29dd-46d1-9269-696ec3cef37a", "name": "Loop Over Items" }, { "parameters": { "conditions": { "options": { "caseSensitive": true, "leftValue": "", "typeValidation": "loose", "version": 2 }, "conditions": [ { "id": "3f3244e8-d845-48b1-8355-07295725cb85", "leftValue": "={{ $json.data }}", "rightValue": "", "operator": { "type": "string", "operation": "exists", "singleValue": true } } ], "combinator": "and" }, "looseTypeValidation": true, "options": {} }, "type": "n8n-nodes-base.if", "typeVersion": 2.2, "position": [ -64, 144 ], "id": "8ba87150-8d5d-4684-b91d-161e7e7d730a", "name": "If", "alwaysOutputData": false }, { "parameters": { "documentId": { "__rl": true, "value": "1CnYbGz4Xq0D0eI6T4jelZkL1c3ZY5hKB2wjhWtmjAOw", "mode": "list", "cachedResultName": "n8n Newspress Article Workflow", "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1CnYbGz4Xq0D0eI6T4jelZkL1c3ZY5hKB2wjhWtmjAOw/edit?usp=drivesdk" }, "sheetName": { "__rl": true, "value": 2027275420, "mode": "list", "cachedResultName": "Cheapnail", "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1CnYbGz4Xq0D0eI6T4jelZkL1c3ZY5hKB2wjhWtmjAOw/edit#gid=2027275420" }, "filtersUI": { "values": [ { "lookupColumn": "Flow Status", "lookupValue": "New" } ] }, "options": {} }, "type": "n8n-nodes-base.googleSheets", "typeVersion": 4.6, "position": [ -960, 384 ], "id": "7650e708-bb75-4472-88b2-5bf6384f2369", "name": "Get New Articles", "credentials": { "googleSheetsOAuth2Api": { "id": "Br9lRn5gAnnRLFmy", "name": "Google Sheets account 2" } } }, { "parameters": { "operation": "update", "documentId": { "__rl": true, "value": "1CnYbGz4Xq0D0eI6T4jelZkL1c3ZY5hKB2wjhWtmjAOw", "mode": "list", "cachedResultName": "n8n Newspress Article Workflow", "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1CnYbGz4Xq0D0eI6T4jelZkL1c3ZY5hKB2wjhWtmjAOw/edit?usp=drivesdk" }, "sheetName": { "__rl": true, "value": 2027275420, "mode": "list", "cachedResultName": "Cheapnail", "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1CnYbGz4Xq0D0eI6T4jelZkL1c3ZY5hKB2wjhWtmjAOw/edit#gid=2027275420" }, "columns": { "mappingMode": "defineBelow", "value": { "Topic": "={{ $json.Topic }}", "Source": "={{ $json.Source }}", "Publish Status": "Processing", "Flow Timing": "={{ $now.setZone(\"Asia/Kolkata\").toFormat(\"dd-MMM-yyyy HH:mm:ss\") }}", "row_number": "={{ $json.row_number }}" }, "matchingColumns": [ "row_number" ], "schema": [ { "id": "Topic", "displayName": "Topic", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true, "removed": false }, { "id": "Source", "displayName": "Source", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true, "removed": false }, { "id": "Publish Status", "displayName": "Publish Status", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true, "removed": false }, { "id": "Publish Link", "displayName": "Publish Link", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true, "removed": true }, { "id": "Flow Status", "displayName": "Flow Status", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true, "removed": true }, { "id": "Flow Timing", "displayName": "Flow Timing", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true, "removed": false }, { "id": "Run Flow", "displayName": "Run Flow", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true, "removed": true }, { "id": "row_number", "displayName": "row_number", "required": false, "defaultMatch": false, "display": true, "type": "number", "canBeUsedToMatch": true, "readOnly": true, "removed": false } ], "attemptToConvertTypes": false, "convertFieldsToString": false }, "options": {} }, "type": "n8n-nodes-base.googleSheets", "typeVersion": 4.6, "position": [ -512, 144 ], "id": "dfa0ca22-4b60-4215-9f82-5fc0bc0d125d", "name": "Update Processing", "credentials": { "googleSheetsOAuth2Api": { "id": "Br9lRn5gAnnRLFmy", "name": "Google Sheets account 2" } } }, { "parameters": { "url": "={{ $json.Source }}", "options": { "timeout": 10000 } }, "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [ -288, 144 ], "id": "ba43343e-ac56-4cdb-9877-c3f23458df0f", "name": "Fetch HTML", "onError": "continueRegularOutput" }, { "parameters": { "operation": "update", "documentId": { "__rl": true, "value": "1CnYbGz4Xq0D0eI6T4jelZkL1c3ZY5hKB2wjhWtmjAOw", "mode": "list", "cachedResultName": "n8n Newspress Article Workflow", "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1CnYbGz4Xq0D0eI6T4jelZkL1c3ZY5hKB2wjhWtmjAOw/edit?usp=drivesdk" }, "sheetName": { "__rl": true, "value": 2027275420, "mode": "list", "cachedResultName": "Cheapnail", "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1CnYbGz4Xq0D0eI6T4jelZkL1c3ZY5hKB2wjhWtmjAOw/edit#gid=2027275420" }, "columns": { "mappingMode": "defineBelow", "value": { "Flow Status": "Error", "Publish Status": "Not Processed Because of an Error", "Publish Link": "={{ $('Fetch HTML').item.json.error.status }}", "row_number": "={{ $('Update Processing').item.json.row_number }}" }, "matchingColumns": [ "row_number" ], "schema": [ { "id": "Topic", "displayName": "Topic", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true, "removed": true }, { "id": "Source", "displayName": "Source", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true, "removed": true }, { "id": "Publish Status", "displayName": "Publish Status", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true, "removed": false }, { "id": "Publish Link", "displayName": "Publish Link", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true, "removed": false }, { "id": "Flow Status", "displayName": "Flow Status", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true, "removed": false }, { "id": "Flow Timing", "displayName": "Flow Timing", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true, "removed": true }, { "id": "Run Flow", "displayName": "Run Flow", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true, "removed": true }, { "id": "row_number", "displayName": "row_number", "required": false, "defaultMatch": false, "display": true, "type": "number", "canBeUsedToMatch": true, "readOnly": true, "removed": false } ], "attemptToConvertTypes": false, "convertFieldsToString": false }, "options": {} }, "type": "n8n-nodes-base.googleSheets", "typeVersion": 4.6, "position": [ 224, 240 ], "id": "d4d5aceb-8065-415a-8bfe-7a9cb5df8bcd", "name": "Update Error", "credentials": { "googleSheetsOAuth2Api": { "id": "Br9lRn5gAnnRLFmy", "name": "Google Sheets account 2" } } }, { "parameters": { "content": "## 🤖 These Two AI Brother is creating the Article ✌\n- Article Summarizer\n- Article Creator", "height": 224, "width": 640, "color": 6 }, "type": "n8n-nodes-base.stickyNote", "typeVersion": 1, "position": [ 128, -64 ], "id": "69aff7d4-a5d8-4bc7-93a6-a66ca684528b", "name": "Sticky Note" }, { "parameters": { "modelId": { "__rl": true, "value": "gpt-4.1-mini", "mode": "list", "cachedResultName": "GPT-4.1-MINI" }, "messages": { "values": [ { "content": "=Generate a news article about the given Source Data\nThe article should follow this format and structure:\n- **Headline:** Create an SEO-optimized headline that includes the keywords from the topic title.\n- **Location Line:** Immediately after the headline, include a **location line** (e.g., **\"San Francisco, CA –\"**) and **bold the location**.\n- **Introduction:** Write a strong, engaging introduction summarizing the key point of the article in one to two paragraphs. Make sure it captures the reader's attention.\n- **Main Headings Based on Content:**\n - Instead of predefined subheadings, **generate the main headings** based on the **content of the article**. For example:\n 1. If the article is about a **discovery**, the main heading might be something like: **\"The Unexpected Discovery\"** or **\"How the Discovery Was Made\"**.\n 2. If the article focuses on **reactions**, the main heading could be: **\"Community Reactions and Expert Opinions\"** or **\"Public and Expert Responses\"**.\n 3. For articles related to **future implications** or **next steps**, the heading could be: **\"What Happens Next?\"** or **\"Implications for the Future\"**.\n - The key here is that the main headings should be **created based on the content** in the body, rather than following a rigid structure.\n- **Body Content:**\n - The body of the article should flow logically, based on the content collected from the source. Each section should expand on the corresponding headings.\n - Ensure each section is fact-based, concise, well-researched, and provides relevant information. Use the extracted expert quotes where appropriate.\n- **Bold Key Points:** Make sure to bold any important names, figures, dates, or key terms that require emphasis. Additionally, bold around 15% of the most important words in the article to highlight the key information and ensure clarity.\n- **Bullet Points:** Use bullet points to highlight key facts, data, trends, or recommendations within the article. Bullet points should break down complex information into digestible chunks.\n- **Blockquotes:** Include blockquotes for any expert opinions, quotes, or statements that should be emphasized.\n- **Source Integration:** Integrate the provided **source link** **only once** within the article body. It should be referenced naturally, in a relevant section like background information, expert quotes, or statistics.\n- **Customized Call-to-Action (CTA):** At the end of the article, include a **customized CTA** based on the article's content. For example, if the article is about a discovery, the CTA could be:\n - **\"What do you think about this discovery? Have you ever visited Crater of Diamonds State Park? Share your thoughts in the comments below!\"**\n- **SEO Optimization:** Ensure the article includes relevant keywords naturally throughout the text, in headings and body content, to avoid keyword stuffing while making sure the text flows naturally.", "role": "system" }, { "content": "**Output Format:**\n\n```json\n{\n \"title\": \"the original title here\",\n \"content\": \"the fully written HTML article here\"\n}\n```", "role": "system" }, { "content": "=Source Data :{{ $json.message.content }}\nsource link: {{ $('Loop Over Items').item.json.Source }}" } ] }, "jsonOutput": true, "options": {} }, "type": "@n8n/n8n-nodes-langchain.openAi", "typeVersion": 1.8, "position": [ 512, 48 ], "id": "175955b0-d9ba-4c52-96ae-9c02763a6cd5", "name": "Article Creator", "credentials": { "openAiApi": { "id": "jNGTDQUn7rhCJPBy", "name": "OpenAi account 2" } } }, { "parameters": { "modelId": { "__rl": true, "value": "gpt-4.1-mini", "mode": "list", "cachedResultName": "GPT-4.1-MINI" }, "messages": { "values": [ { "content": "=You are a data extraction AI tasked with processing HTML content. Your goal is to identify and extract the title and the main text content from the provided HTML document. Follow these specific instructions:\n\n1. **Input Format:** You will receive a well-formed HTML document as input.\n2. **Output Format:** Your output should be in Markdown format.\n3. **Content Extraction:**\n - Extract the title of the article from the `` tag or the main heading tag (e.g., `<h1>`).\n - Extract the main body of the article excluding any images, external links, or other media. Focus solely on the text content.\n4. **Markdown Guidelines:**\n - The title should be formatted as a top-level heading (using `#`).\n - The main body text should follow the title in plain Markdown format, preserving paragraphs, lists, and any other textual formatting present in the HTML.\n5. **Restrictions:**\n - Do not include any images, external links, or HTML tags in your output.\n - Ensure that the extracted text is coherent and maintains the context of the original content.\n\nExample Input:\n```html\n<html>\n<head>\n<title>Sample Article Title\n\n\n

Sample Article Title

\n

This is the first paragraph of the article.

\n

This is the second paragraph with an external link.

\n\"Sample\n\n\n```\n\nExpected Output:\n```\n# Sample Article Title\n\nThis is the first paragraph of the article with information.\n\nThis is the second paragraph of the article with information.\n```\n\nProcess the provided HTML input according to these instructions and generate the desired Markdown output.", "role": "system" }, { "content": "=The HTML is provided as follows:\n{{ $('Fetch HTML').item.json.data }}\n\n\nPlease process the HTML and return the Markdown formatted output." } ] }, "options": {} }, "type": "@n8n/n8n-nodes-langchain.openAi", "typeVersion": 1.8, "position": [ 160, 48 ], "id": "e7b6c39b-1b55-41c6-9626-6c18da2253fb", "name": "Article Summarizer", "credentials": { "openAiApi": { "id": "jNGTDQUn7rhCJPBy", "name": "OpenAi account 2" } } }, { "parameters": { "content": "## 🕸 Fetch the article information from web", "height": 240, "width": 640 }, "type": "n8n-nodes-base.stickyNote", "typeVersion": 1, "position": [ -560, 64 ], "id": "411f871c-ce66-4c8f-81eb-b81a816a7445", "name": "Sticky Note1" }, { "parameters": { "content": "## 📑 Get 'New' Articles data from G Sheet\n", "height": 240, "width": 576, "color": 5 }, "type": "n8n-nodes-base.stickyNote", "typeVersion": 1, "position": [ -1184, 304 ], "id": "e7a86256-c59c-4f71-9035-39e93192fc6e", "name": "Sticky Note2" }, { "parameters": { "title": "={{ $json.title }}", "additionalFields": { "authorId": 12, "content": "={{ $json.content }}", "status": "draft" } }, "type": "n8n-nodes-base.wordpress", "typeVersion": 1, "position": [ 1088, 48 ], "id": "fb65aa96-048d-4145-a7e7-499ecb81715f", "name": "Create a Draft", "credentials": { "wordpressApi": { "id": "a7Cx6j0h8rI7LX2v", "name": "WP Cheapnail" } } }, { "parameters": { "jsCode": "// Pull the incoming payload\nconst msg = $input.first().json.message || {};\nconst rawContent = msg.content;\n\n// Normalise inputs: html body + a separately provided title (if any)\nlet html = \"\";\nlet providedTitle = \"\";\n\nif (typeof rawContent === \"string\") {\n // Sometimes the HTML is directly in message.content\n html = rawContent;\n} else if (rawContent && typeof rawContent === \"object\") {\n // Common shape: message.content = { title, content }\n html = (rawContent.content || \"\").toString();\n providedTitle = (rawContent.title || \"\").toString().trim();\n}\n\n// Helper: strip tags for the final title value\nconst stripTags = (s) => s.replace(/<[^>]*>/g, \"\").trim();\n\n// Try to extract

from the HTML body (allow attributes, any casing)\nconst h1Match = html.match(/]*>([\\s\\S]*?)<\\/h1>/i);\n\n// Title preference:

from content first, else fall back to provided title field\nlet title = h1Match ? stripTags(h1Match[1]) : providedTitle;\n\n// Build the content: remove the first

if present; otherwise keep HTML as-is\nlet content = html;\nif (h1Match) {\n content = html.replace(/]*>[\\s\\S]*?<\\/h1>\\s*/i, \"\").trim();\n} else {\n content = (html || \"\").trim();\n}\n\n// Output\nreturn [\n {\n json: {\n title,\n content\n }\n }\n];\n" }, "type": "n8n-nodes-base.code", "typeVersion": 2, "position": [ 864, 48 ], "id": "6d4b278b-39e4-431e-aeca-e9192b813faa", "name": "Format Article" }, { "parameters": { "operation": "update", "documentId": { "__rl": true, "value": "1CnYbGz4Xq0D0eI6T4jelZkL1c3ZY5hKB2wjhWtmjAOw", "mode": "list", "cachedResultName": "n8n Newspress Article Workflow", "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1CnYbGz4Xq0D0eI6T4jelZkL1c3ZY5hKB2wjhWtmjAOw/edit?usp=drivesdk" }, "sheetName": { "__rl": true, "value": 2027275420, "mode": "list", "cachedResultName": "Cheapnail", "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1CnYbGz4Xq0D0eI6T4jelZkL1c3ZY5hKB2wjhWtmjAOw/edit#gid=2027275420" }, "columns": { "mappingMode": "defineBelow", "value": { "Publish Link": "={{ $json.link }}", "Publish Status": "={{ $json.status }}", "Flow Status": "Flow Complete", "row_number": "={{ $('Update Processing').item.json.row_number }}" }, "matchingColumns": [ "row_number" ], "schema": [ { "id": "Topic", "displayName": "Topic", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true, "removed": true }, { "id": "Source", "displayName": "Source", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true, "removed": true }, { "id": "Publish Status", "displayName": "Publish Status", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true }, { "id": "Publish Link", "displayName": "Publish Link", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true }, { "id": "Flow Status", "displayName": "Flow Status", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true, "removed": false }, { "id": "Flow Timing", "displayName": "Flow Timing", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true, "removed": true }, { "id": "Run Flow", "displayName": "Run Flow", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true, "removed": true }, { "id": "row_number", "displayName": "row_number", "required": false, "defaultMatch": false, "display": true, "type": "number", "canBeUsedToMatch": true, "readOnly": true, "removed": false } ], "attemptToConvertTypes": false, "convertFieldsToString": false }, "options": {} }, "type": "n8n-nodes-base.googleSheets", "typeVersion": 4.6, "position": [ 1312, 224 ], "id": "18d6447a-cb7a-49c6-9baa-4339c5601f8a", "name": "Update Draft Details", "credentials": { "googleSheetsOAuth2Api": { "id": "Br9lRn5gAnnRLFmy", "name": "Google Sheets account 2" } } }, { "parameters": { "content": "## 📂 Make Draft Article and Update the Google Sheet", "height": 416, "width": 624, "color": 2 }, "type": "n8n-nodes-base.stickyNote", "typeVersion": 1, "position": [ 832, -32 ], "id": "021f2b33-1f7a-4cba-90de-e56e6acc105a", "name": "Sticky Note3" }, { "parameters": { "path": "a1889360-e1bf-4b53-a96b-5eafa4b165a1", "options": {} }, "type": "n8n-nodes-base.webhook", "typeVersion": 2.1, "position": [ -1168, 384 ], "id": "2aaa0031-8189-47c1-8946-62068490e79e", "name": "Webhook", "webhookId": "a1889360-e1bf-4b53-a96b-5eafa4b165a1" } ], "pinData": {}, "connections": { "Loop Over Items": { "main": [ [], [ { "node": "Update Processing", "type": "main", "index": 0 } ] ] }, "If": { "main": [ [ { "node": "Article Summarizer", "type": "main", "index": 0 } ], [ { "node": "Update Error", "type": "main", "index": 0 } ] ] }, "Get New Articles": { "main": [ [ { "node": "Loop Over Items", "type": "main", "index": 0 } ] ] }, "Update Processing": { "main": [ [ { "node": "Fetch HTML", "type": "main", "index": 0 } ] ] }, "Fetch HTML": { "main": [ [ { "node": "If", "type": "main", "index": 0 } ] ] }, "Update Error": { "main": [ [ { "node": "Loop Over Items", "type": "main", "index": 0 } ] ] }, "Article Creator": { "main": [ [ { "node": "Format Article", "type": "main", "index": 0 } ] ] }, "Article Summarizer": { "main": [ [ { "node": "Article Creator", "type": "main", "index": 0 } ] ] }, "Create a Draft": { "main": [ [ { "node": "Update Draft Details", "type": "main", "index": 0 } ] ] }, "Format Article": { "main": [ [ { "node": "Create a Draft", "type": "main", "index": 0 } ] ] }, "Update Draft Details": { "main": [ [ { "node": "Loop Over Items", "type": "main", "index": 0 } ] ] }, "Webhook": { "main": [ [ { "node": "Get New Articles", "type": "main", "index": 0 } ] ] } }, "active": true, "settings": { "executionOrder": "v1", "timezone": "Asia/Kolkata", "callerPolicy": "workflowsFromSameOwner", "errorWorkflow": "ipTcrzGbKoHF6UKi" }, "versionId": "dcb3a423-5356-4732-855f-419db73e8c89", "meta": { "templateCredsSetupCompleted": true, "instanceId": "1f1785d995b3fa32ab6b8219168659331dbe1459fee9ca0c94987e0285ae2676" }, "id": "9LKLgEkXV10DszQ1", "tags": [ { "createdAt": "2025-07-23T09:03:28.998Z", "updatedAt": "2025-07-23T09:03:28.998Z", "id": "0TIhg6ju9FxO2Lcp", "name": "Wordpress" }, { "createdAt": "2025-09-01T09:43:28.145Z", "updatedAt": "2025-09-01T09:43:28.145Z", "id": "KNKC6Mt3juYzghT4", "name": "Newsbreak" }, { "createdAt": "2025-09-03T07:38:33.128Z", "updatedAt": "2025-09-03T07:38:33.128Z", "id": "j70AoEIxmOT3oVGW", "name": "🟢 Active" } ] }

{ "name": "Article Generation and Publishing Automation", "nodes": [ { "parameters": { "jsCode": "const results = [];\n\n// Get the image list from the cleaned HTML node\nconst imageList = $('Clean HTML').first().json.images;\n\n// Log the image list to check its full content\nconsole.log(\"Image List Length:\", imageList.length); // How many items are in the array?\nconsole.log(\"Image List Data:\", imageList); // Log full array content\n\n// Check if imageList is an array\nif (Array.isArray(imageList)) {\n // Loop through all the images and extract title and URL\n for (const raw of imageList) {\n console.log(\"Processing image data:\", raw); // Log each image data for debugging\n\n // Extract title: first text before any \"[\" or just the beginning\n const titleMatch = raw.match(/^([^\\[]+)/);\n const title = titleMatch ? titleMatch[1].trim() : null;\n\n // Extract .jpg or .webp URLs starting with \"https://www.whats-on-netflix.com/wp-content/uploads\"\n const urlMatch = raw.match(/\\[(https:\\/\\/www\\.whats-on-netflix\\.com\\/wp-content\\/uploads[^\\]]+\\.(jpg|png|jpeg|webp))\\]/);\n const imageUrl = urlMatch ? urlMatch[1] : null;\n\n // If both title and image URL are found, add it to the result\n if (title && imageUrl) {\n console.log(\"Found Image:\", title, imageUrl); // Log the image title and URL\n results.push({\n json: {\n title,\n imageUrl\n }\n });\n } else {\n console.log('Missing image title or URL:', raw); // Log missing data\n }\n }\n} else {\n console.log('No image data found or imgData is not an array');\n}\n\n// Return the results\nreturn results;\n" }, "type": "n8n-nodes-base.code", "typeVersion": 2, "position": [ -416, 640 ], "id": "c781d8ad-8a38-41f6-8e00-96c271e0f809", "name": "Images" }, { "parameters": { "jsCode": "const titles = items[0].json.youtube_vid_title || [];\nconst urls = items[0].json.youtube_vid_url || [];\n\nconst output = [];\n\nfor (let i = 0; i < titles.length; i++) {\n if (titles[i] && urls[i]) {\n output.push({\n json: {\n vidTitle: titles[i],\n vidUrl: urls[i]\n }\n });\n }\n}\n\nreturn output;\n" }, "type": "n8n-nodes-base.code", "typeVersion": 2, "position": [ -416, 448 ], "id": "5df81021-cf31-468c-bd25-bf11d40df0ea", "name": "Videos" }, { "parameters": { "url": "={{ $json.imageUrl }}", "options": { "response": { "response": { "responseFormat": "file" } } } }, "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [ -208, 640 ], "id": "a6d40956-a3f3-46a0-be2f-8e8c4ee7a548", "name": "GET All Images" }, { "parameters": { "options": { "reset": false } }, "type": "n8n-nodes-base.splitInBatches", "typeVersion": 3, "position": [ 80, 640 ], "id": "0bd85188-dab5-4fd9-a751-cc325e08ce63", "name": "Loop Over Items", "alwaysOutputData": false }, { "parameters": { "aggregate": "aggregateAllItemData", "destinationFieldName": "imgData", "include": "specifiedFields", "fieldsToInclude": "title, guid", "options": {} }, "type": "n8n-nodes-base.aggregate", "typeVersion": 1, "position": [ 448, 640 ], "id": "6524f176-bd5d-49f9-b8ec-3e1f3face261", "name": "Aggregate" }, { "parameters": { "numberInputs": 4 }, "type": "n8n-nodes-base.merge", "typeVersion": 3.2, "position": [ 720, 416 ], "id": "9fa12718-b378-49b5-99b8-22f8c6fc4135", "name": "Merge" }, { "parameters": { "aggregate": "aggregateAllItemData", "options": {} }, "type": "n8n-nodes-base.aggregate", "typeVersion": 1, "position": [ 448, 448 ], "id": "15431bf2-7836-4f12-aa2a-902d06593a73", "name": "Aggregate2" }, { "parameters": { "rule": { "interval": [ { "field": "hours", "hoursInterval": 6 } ] } }, "type": "n8n-nodes-base.scheduleTrigger", "typeVersion": 1.2, "position": [ -2336, 448 ], "id": "80a434c8-37d5-4c67-a4fc-f39232ce617d", "name": "Schedule Trigger1" }, { "parameters": { "documentId": { "__rl": true, "value": "1YZM59IZjDFPMszFE9Dk3opa7qrPN90HDPqg1QGk1nDE", "mode": "id" }, "sheetName": { "__rl": true, "value": 94180956, "mode": "list", "cachedResultName": "Article", "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1YZM59IZjDFPMszFE9Dk3opa7qrPN90HDPqg1QGk1nDE/edit#gid=94180956" }, "filtersUI": { "values": [ { "lookupColumn": "Source URL", "lookupValue": "={{ $json.link }}" } ] }, "options": {} }, "type": "n8n-nodes-base.googleSheets", "typeVersion": 4.6, "position": [ -1568, 448 ], "id": "55e9b7b5-fa51-4ed0-845c-1eab0c5c3965", "name": "Filter by URL", "alwaysOutputData": true, "executeOnce": true, "credentials": { "googleSheetsOAuth2Api": { "id": "4zobG6lG0OtqxOPJ", "name": "Google Sheets account" } } }, { "parameters": { "jsCode": "const count = items.length;\n\n// Check if 'SourceURL' has a valid value in the last item\nconst sourceURL = $input.last().json['Source URL'];\nconst isSourceURLValid = sourceURL && sourceURL.trim() !== ''; // true if SourceURL has value, false if empty or not found\n\nreturn [{\n json: {\n row_number: $input.last().json.row_number,\n pubDate: $input.last().json.Date,\n Title: $input.last().json.Title,\n SourceURL: sourceURL,\n isSourceURLValid: isSourceURLValid ? false : true // Will return true if SourceURL has value, false if empty or not found\n }\n}];" }, "type": "n8n-nodes-base.code", "typeVersion": 2, "position": [ -1360, 448 ], "id": "04cfcc6e-95f3-42c6-a47b-409a637acbc9", "name": "Duplicate ArticleCheck", "alwaysOutputData": true }, { "parameters": { "url": "https://www.whats-on-netflix.com/feed/", "options": { "ignoreSSL": false } }, "type": "n8n-nodes-base.rssFeedRead", "typeVersion": 1.1, "position": [ -2160, 448 ], "id": "50371625-755a-4c9e-9f74-0007b826508c", "name": "RSS Read" }, { "parameters": { "jsCode": "const inputUrl = $input.first().json.link || ''; // Replace 'url' with your actual field\n\n// Remove protocol (http:// or https://)\nconst noProtocol = inputUrl.replace(/^https?:\\/\\//, '').replace(/^www\\./, '');\n\n// Get domain only\nconst domain = noProtocol.split('/')[0]; // e.g., \"beebom.com\"\n\n// Optional: Get domain without TLD\nconst sourceWebsiteName = domain.split('.')[0]; // e.g., \"beebom\"\n\nreturn {\n json: {\n ...$json,\n domain,\n sourceWebsiteName\n }\n};\n" }, "type": "n8n-nodes-base.code", "typeVersion": 2, "position": [ -1760, 448 ], "id": "459aef92-2c4d-48ef-9ce5-7c1d107e8256", "name": "Get Website Name" }, { "parameters": { "conditions": { "options": { "caseSensitive": true, "leftValue": "", "typeValidation": "strict", "version": 2 }, "conditions": [ { "id": "43eeeab9-82a6-4400-8fc7-a803272faa61", "leftValue": "={{ $json.isSourceURLValid }}", "rightValue": "\"true\"", "operator": { "type": "boolean", "operation": "true", "singleValue": true } } ], "combinator": "and" }, "options": {} }, "type": "n8n-nodes-base.if", "typeVersion": 2.2, "position": [ -1168, 448 ], "id": "dbb58262-bc05-4c49-b73c-c5f68983d5f4", "name": "If" }, { "parameters": { "url": "=https://www.keeperfacts.com/wp-json/wp/v2/categories?search={{ $('Structure the data').item.json.articleCategorie }}", "authentication": "predefinedCredentialType", "nodeCredentialType": "wordpressApi", "options": {} }, "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [ 1888, 448 ], "id": "c0fdc749-f2f5-46dd-90a4-2083a34fb2bd", "name": "Get Category ID", "credentials": { "wordpressApi": { "id": "8qCR4kNx0Vvnkq0y", "name": "Keeperfacts wp acc" } } }, { "parameters": { "method": "POST", "url": "=https://keeperfacts.com/wp-json/wp/v2/posts/{{ $('Publish Article').item.json.id }}", "authentication": "predefinedCredentialType", "nodeCredentialType": "wordpressApi", "sendBody": true, "bodyParameters": { "parameters": [ { "name": "featured_media", "value": "={{ $json.id }}" } ] }, "options": {} }, "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [ 2880, 448 ], "id": "20a4806b-e12c-45a9-9f45-b6347a9ba351", "name": "Update Feature Img", "credentials": { "wordpressApi": { "id": "8qCR4kNx0Vvnkq0y", "name": "Keeperfacts wp acc" } } }, { "parameters": { "operation": "append", "documentId": { "__rl": true, "value": "1YZM59IZjDFPMszFE9Dk3opa7qrPN90HDPqg1QGk1nDE", "mode": "id" }, "sheetName": { "__rl": true, "value": 94180956, "mode": "list", "cachedResultName": "Article", "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1YZM59IZjDFPMszFE9Dk3opa7qrPN90HDPqg1QGk1nDE/edit#gid=94180956" }, "columns": { "mappingMode": "defineBelow", "value": { "Our URL": "={{ $json.link }}", "Our Title": "={{ $json.title.raw }}", "Our Website Name": "Keeperfact", "Pub date": "={{ $json.date }}", "Source Website Name": "=whats-on-netflix", "Title": "={{ $('Structure the data').item.json.articleTitle }}", "Source URL": "={{ $('Structure the data').item.json.articleURL }}", "Date": "={{ $('Structure the data').item.json.articlePubdate }}" }, "matchingColumns": [], "schema": [ { "id": "Date", "displayName": "Date", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true }, { "id": "Source Website Name", "displayName": "Source Website Name", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true }, { "id": "Title", "displayName": "Title", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true }, { "id": "Source URL", "displayName": "Source URL", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true }, { "id": "Pub date", "displayName": "Pub date", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true }, { "id": "Our Website Name", "displayName": "Our Website Name", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true }, { "id": "Our Title", "displayName": "Our Title", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true }, { "id": "Our URL", "displayName": "Our URL", "required": false, "defaultMatch": false, "display": true, "type": "string", "canBeUsedToMatch": true } ], "attemptToConvertTypes": false, "convertFieldsToString": false }, "options": {} }, "type": "n8n-nodes-base.googleSheets", "typeVersion": 4.6, "position": [ 2288, 448 ], "id": "4501fb84-bb17-4ed9-9c9b-0be92b96d408", "name": "Update New Data", "alwaysOutputData": true, "credentials": { "googleSheetsOAuth2Api": { "id": "4zobG6lG0OtqxOPJ", "name": "Google Sheets account" } }, "onError": "continueRegularOutput" }, { "parameters": { "title": "={{ $('Ready Article').item.json.message.content.title }}", "additionalFields": { "authorId": 123, "content": "={{ $('Ready Article').item.json.message.content.content }}", "status": "publish", "categories": "={{ $json.id }}" } }, "type": "n8n-nodes-base.wordpress", "typeVersion": 1, "position": [ 2080, 448 ], "id": "74106d51-5aeb-405b-bafb-188c7dfef77d", "name": "Publish Article", "credentials": { "wordpressApi": { "id": "8qCR4kNx0Vvnkq0y", "name": "Keeperfacts wp acc" } } }, { "parameters": { "method": "POST", "url": "https://www.keeperfacts.com/wp-json/wp/v2/categories", "authentication": "predefinedCredentialType", "nodeCredentialType": "wordpressApi", "sendBody": true, "bodyParameters": { "parameters": [ { "name": "name", "value": "={{ $('Structure the data').item.json.articleCategorie }}" } ] }, "options": {} }, "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [ 1680, 448 ], "id": "fb4ce853-1931-40be-8382-cd13c5a3cb34", "name": "Set New Category", "alwaysOutputData": true, "credentials": { "wordpressApi": { "id": "8qCR4kNx0Vvnkq0y", "name": "Keeperfacts wp acc" } }, "onError": "continueRegularOutput" }, { "parameters": { "jsCode": "// Get the item\nconst item = $input.first().json;\n\n// Extract content safely as a string\nconst content = item?.message?.content;\nif (typeof content !== 'string') {\n return [{ json: { ...item, error: 'Content is not a string' } }];\n}\n\n// Find YouTube embed URL\nconst match = content.match(/https:\\/\\/www\\.youtube\\.com\\/embed\\/[a-zA-Z0-9_-]+/);\n\nif (match) {\n const embedUrl = match[0];\n const iframe = ``;\n\n // Replace the YouTube URL with the iframe\n const newContent = content.replace(embedUrl, iframe);\n\n return [{ json: { ...item, article: newContent } }];\n} else {\n // No match\n return [{ json: { ...item, article: content, note: 'No YouTube embed URL found' } }];\n}\n" }, "type": "n8n-nodes-base.code", "typeVersion": 2, "position": [ 1488, 448 ], "id": "dddb1a40-87e2-496c-bc34-4e0a06cc7161", "name": "Update Embedding" }, { "parameters": {}, "type": "n8n-nodes-base.limit", "typeVersion": 1, "position": [ -1968, 448 ], "id": "1a6c4849-e36a-4c77-a19d-4468f3acf9ee", "name": "Limit Article" }, { "parameters": { "url": "={{ $('Get Website Name').item.json.link }}", "options": {} }, "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [ -896, 448 ], "id": "54f16c3d-6798-44ec-91c4-b96ee1c6339c", "name": "fetch Article HTML" }, { "parameters": { "operation": "extractHtmlContent", "extractionValues": { "values": [ { "key": "Title", "cssSelector": "h1.post-title" }, { "key": "content", "cssSelector": "div#article-body.entry" }, { "key": "feature_img", "cssSelector": "img.size-full", "returnValue": "attribute", "attribute": "data-lazy-src" }, { "key": "youtube_vid_title", "cssSelector": ".rll-youtube-player", "returnValue": "attribute", "attribute": "data-alt", "returnArray": true }, { "key": "youtube_vid_url", "cssSelector": ".rll-youtube-player", "returnValue": "attribute", "attribute": "data-src", "returnArray": true }, { "key": "images", "cssSelector": "div#article-body.entry div.entry-inner picture", "skipSelectors": "src", "returnArray": true } ] }, "options": { "cleanUpText": true } }, "type": "n8n-nodes-base.html", "typeVersion": 1.2, "position": [ -704, 448 ], "id": "ec33b62b-fa9d-421e-baf8-760fef41d9c0", "name": "Clean HTML" }, { "parameters": { "assignments": { "assignments": [ { "id": "5652d57e-5034-4112-8925-09abf403093d", "name": "articlePubdate", "value": "={{ $('Get Website Name').item.json.pubDate }}", "type": "string" }, { "id": "f29eeeb4-9e81-4e48-91f4-cb8c92e9512d", "name": "articleTitle", "value": "={{ $('Get Website Name').item.json.title }}", "type": "string" }, { "id": "8cf984c6-ccd7-4d22-8232-ca1ced4d1e9f", "name": "feature_img", "value": "={{ $json.feature_img }}", "type": "string" }, { "id": "6d66b50c-2652-4bec-a5c0-2b0607c3ca9e", "name": "articleURL", "value": "={{ $('Get Website Name').item.json.link }}", "type": "string" }, { "id": "c8d5f29f-e48c-45ea-9738-c3fc242c332f", "name": "articleCategorie", "value": "={{ $('Get Website Name').item.json.categories[0] }}", "type": "string" }, { "id": "8df7bd30-3f08-4b3f-a574-a9a329d76713", "name": "sourceWebsiteName", "value": "={{ $('Get Website Name').item.json.sourceWebsiteName }}", "type": "string" } ] }, "options": {} }, "type": "n8n-nodes-base.set", "typeVersion": 3.4, "position": [ 0, 0 ], "id": "e2efb81c-ff38-46c7-acce-3d5b35c30c64", "name": "Take Websites data" }, { "parameters": { "method": "POST", "url": "https://keeperfacts.com//wp-json/wp/v2/media", "authentication": "predefinedCredentialType", "nodeCredentialType": "wordpressApi", "sendHeaders": true, "headerParameters": { "parameters": [ { "name": "content-disposition", "value": "=attachment;filename= {{ $binary.data.fileName.replace(/\\.[^/.]+$/, \"\") }}.jpg" }, { "name": "content-type", "value": "={{ $binary.data.mimeType }}" } ] }, "sendBody": true, "contentType": "binaryData", "inputDataFieldName": "data", "options": {} }, "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [ 2688, 448 ], "id": "1af03886-aea6-4a19-89b1-1fd5c2536c77", "name": "Upload F img to WP", "executeOnce": true, "credentials": { "wordpressApi": { "id": "8qCR4kNx0Vvnkq0y", "name": "Keeperfacts wp acc" } } }, { "parameters": { "url": "={{ $('Structure the data').item.json.featureImage }}", "options": { "response": { "response": { "responseFormat": "file" } } } }, "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [ 2480, 448 ], "id": "c7bcdc2a-fcd5-4693-96c8-dcb17fe420dd", "name": "GET F Image" }, { "parameters": { "jsCode": "// Initialize variables for video, image data, and article outline\nlet videoData = '';\nlet imageData = '';\nlet articleOutline = '';\n\n// Initialize the variables for the article's metadata\nlet articlePubdate = '';\nlet articleTitle = '';\nlet articleURL = '';\nlet articleCategorie = '';\n\n// Debugging: Log the entire input data to inspect its structure\nconsole.log(\"Input data:\", items);\n\n// **Extract Video Data Dynamically**\nfor (let i = 0; i < items.length; i++) {\n const videos = items[i]?.json?.data;\n if (Array.isArray(videos)) {\n console.log(`Video Data Found at items[${i}]:`, videos); // Log video data to check structure\n videos.forEach((video, index) => {\n if (video.vidTitle && video.vidUrl) {\n videoData += `${index + 1}. \"${video.vidTitle}\": \"${video.vidUrl}\",\\n`; // Add index and construct the string for video data\n } else {\n console.log(`Missing video title or URL in items[${i}]`, video);\n }\n });\n } else {\n console.log(`No video data found or data is not an array at items[${i}]`);\n }\n}\n\n// **Extract Image Data Dynamically**\nlet featureImage = ''; // First image URL\nlet isFirstImageCaptured = false;\n\nfor (let i = 0; i < items.length; i++) {\n const images = items[i]?.json?.imgData;\n if (Array.isArray(images)) {\n console.log(`Image Data Found at items[${i}]:`, images); // Log image data to check structure\n images.forEach((image) => {\n if (image.title && image.guid && image.guid.rendered) {\n if (!isFirstImageCaptured) {\n featureImage = image.guid.rendered; // Capture only the first image URL\n isFirstImageCaptured = true;\n } else {\n imageData += `\"${image.title.rendered}\": \"${image.guid.rendered}\",\\n`; // Add to imageData\n }\n } else {\n console.log(`Missing image title or URL in items[${i}]`, image);\n }\n });\n } else {\n console.log(`No image data found or imgData is not an array at items[${i}]`);\n }\n}\n\n\n// **Extract Article Outline and Metadata**\narticleOutline = items[1]?.json?.message?.content || 'No content available';\nconsole.log('Article Outline:', articleOutline);\n\n// Extract article metadata (assuming they are in the first item)\narticlePubdate = items[0]?.json?.articlePubdate || 'No publication date available';\narticleTitle = items[0]?.json?.articleTitle || 'No title available';\narticleURL = items[0]?.json?.articleURL || 'No URL available';\narticleCategorie = items[0]?.json?.articleCategorie || 'No category available';\nsourceWebsiteName = items[0]?.json?.sourceWebsiteName || 'No source available';\n\n// Prepare the structured output with indexed data\nconst output = {\n articleOutline: articleOutline.trim(),\n videoData: videoData.trim(),\n imageData: imageData.trim(),\n featureImage: featureImage.trim(),\n articlePubdate: articlePubdate.trim(),\n articleTitle: articleTitle.trim(),\n articleURL: articleURL.trim(),\n articleCategorie: articleCategorie.trim(),\n};\n\n// Return the structured output\nreturn [{\n json: output\n}];\n" }, "type": "n8n-nodes-base.code", "typeVersion": 2, "position": [ 928, 448 ], "id": "9b5bd3c6-56ec-458e-a2ae-9dde42ca662a", "name": "Structure the data" }, { "parameters": { "modelId": { "__rl": true, "value": "gpt-4.1-mini", "mode": "list", "cachedResultName": "GPT-4.1-MINI" }, "messages": { "values": [ { "content": "=You are an expert content strategist specializing in entertainment and streaming platforms, especially Netflix. I will provide you with a Netflix-related article. Your task is to carefully analyze the content and generate a clear and organized **article outline** that captures its core structure, key sections, and important discussion points.\n\n**Guidelines:**\n\n* The outline should maintain the **original intent and theme** of the article.\n* Identify and list the **main headings and subheadings** that can be used to rewrite or expand the article.\n* Keep the outline **SEO-friendly**, focusing on relevant topics, release titles, dates, and viewer interest points.\n* Avoid rewriting the article itself—just give a **detailed and usable outline** for content creation.\n* The article should be in markdown format.\n* **No need of adding numbering in headings**.\n* **Don't start the article with an H2 tag—begin with a catchy line without any heading or title.**\n\n\nStart the response with a short identification of the **article category** (e.g., \"Upcoming Releases,\" \"Weekly Roundup,\" \"Original Series Reviews,\" etc.).", "role": "system" }, { "content": "=The Title of article : \"{{ $json.title }}\"\n\nThe Content of article: \n\"{{ $json.cleanedContent }}\"" } ] }, "options": { "temperature": 0.7 } }, "type": "@n8n/n8n-nodes-langchain.openAi", "typeVersion": 1.8, "position": [ 288, 240 ], "id": "47684886-b45a-4374-9eed-a073b51f7d43", "name": "Outline of article", "credentials": { "openAiApi": { "id": "jtLWrEq6HGCqOhD7", "name": "OpenAi account" } } }, { "parameters": { "modelId": { "__rl": true, "value": "gpt-4.1-mini", "mode": "list", "cachedResultName": "GPT-4.1-MINI" }, "messages": { "values": [ { "content": "=You are a professional SEO content strategist and entertainment writer for **Keeperfact**, a leading site in streaming, web series, and pop culture.\n\nYou will receive three specific data inputs:\n\n1. **Article Outline** (use this as the sole structure for the article):\n\n2. **YouTube Trailer/Teaser URLs**:\n\n3. **Image URLs**:\n\n\n---\n\n**Instructions:**\n\n1. **Article Construction**\n\n * Rely entirely on the provided **article outline** for structure and flow.\n * Use **only** the YouTube trailer/teaser URLs and image URLs provided—do not add anything extra.\n * For each section and subheading, integrate relevant YouTube trailer links and image URLs by **matching them with section titles/subtitles** where possible.\n\n2. **Multimedia Embedding**\n\n * **Images:** Insert every image URL once using `\"RELEVANT_TITLE\"` directly after or within the corresponding outline section, ensuring the alt text is descriptive and matches the heading or subheading.\n\n3. **Formatting & Output**\n\n * Deliver the final article as **clean, WordPress-ready HTML**.\n * Use: `

`, `

`, `
    `, `
  • `, ``, ``, and `

    `.\n * No external links unless explicitly provided.\n * Do **not** conduct any extra research or include any commentary/explanation—just the finished article HTML. \n * **YouTube URLs:** Don't embedd the youtube link only palce the you link in different line don't embedd it.\n\n4. **Tone, Style & Audience**\n\n * Determine if the outline’s intent is **informational**, **editorial**, or **entertainment news**; write in a matching, fan-friendly, and engaging style.\n * Value for Netflix, web series, or pop culture fans should be clear throughout.\n * Avoid keyword stuffing—keep it natural and flowing.\n\n5. **Conclusion**\n\n * End with a strong **Call to Action** for \"Keeperfact\" readers (stream, comment, or explore more).\n\n---\n\n**Output:**\n\n* Return **only** the completed HTML article with all sections, images, and YouTube URLs properly placed and formatted.\n* Ensure the article is ready to be pasted directly into WordPress.\n* Do not include any extra commentary or formatting explanation.\n\n**Output Structure**\n\n```json\n{\n \"title\": \"the original title here\",\n \"content\": \"the rephrased HTML content here\"\n}\n```\n\n\n", "role": "system" }, { "content": "=1. The Outline of article: \n{{ $json.articleOutline }}\n\n2. YouTube trailer/teaser URLs:\n{{ $json.videoData }}\n\n3. Image URLs:\n{{ $json.imageData }}" } ] }, "jsonOutput": true, "options": {} }, "type": "@n8n/n8n-nodes-langchain.openAi", "typeVersion": 1.8, "position": [ 1120, 448 ], "id": "4f7361dc-eddf-46be-babc-67a3825dba29", "name": "Ready Article", "credentials": { "openAiApi": { "id": "jtLWrEq6HGCqOhD7", "name": "OpenAi account" } } }, { "parameters": { "jsCode": "const title = $json[\"Title\"];\nconst content = $json[\"content\"];\n\n// Extract the first URL inside square brackets []\nconst urlMatch = content.match(/\\[(https?:\\/\\/[^\\]]+)\\]/);\n\nlet featureImage = null;\nlet cleanedContent = content;\n\nif (urlMatch) {\n featureImage = urlMatch[1];\n // Remove the first occurrence of the URL including brackets\n cleanedContent = content.replace(urlMatch[0], \"\");\n}\n\nreturn [\n {\n json: {\n title,\n featureImage,\n cleanedContent\n }\n }\n];\n" }, "type": "n8n-nodes-base.code", "typeVersion": 2, "position": [ -416, 240 ], "id": "6253a062-a05d-4c96-9ac0-35092ede503e", "name": "Content & Title" }, { "parameters": { "method": "POST", "url": "https://keeperfacts.com//wp-json/wp/v2/media", "authentication": "predefinedCredentialType", "nodeCredentialType": "wordpressApi", "sendHeaders": true, "headerParameters": { "parameters": [ { "name": "content-disposition", "value": "=attachment;filename= {{ $binary.data.fileName.replace(/\\.[^/.]+$/, \"\") }}.jpg" }, { "name": "content-type", "value": "={{ $binary.data.mimeType }}" } ] }, "sendBody": true, "contentType": "binaryData", "inputDataFieldName": "data", "options": {} }, "type": "n8n-nodes-base.httpRequest", "typeVersion": 4.2, "position": [ 224, 752 ], "id": "e79ef2d3-feac-49fc-bc35-6c6376d77eb2", "name": "Upload Img to WP", "executeOnce": true, "credentials": { "wordpressApi": { "id": "8qCR4kNx0Vvnkq0y", "name": "Keeperfacts wp acc" } } }, { "parameters": { "content": "**Title:** RSS Article Filtering & Deduplication\n\n**Process Flow:**\n1. **Trigger & Fetch:** A scheduled trigger automatically runs this workflow to fetch the latest articles from an RSS feed.\n2. **Limit & Enrich:** The flow limits the number of articles processed to avoid overload, then extracts the website name from each article's URL for better organization.\n3. **Filter & Deduplicate:** Articles are first filtered by URL rules to remove unwanted sources. Then, each article is checked against a Google Sheet database to identify duplicates.\n4. **Decision Point:** If an article is new (not in the sheet), the workflow continues for further processing (e.g., posting, notification). If it's a duplicate, the branch stops, doing nothing.\n\n**Key Purpose:** To automatically collect, clean, and check new articles from an RSS feed, ensuring only unique content is processed further, preventing redundant actions.", "height": 416, "width": 1360 }, "type": "n8n-nodes-base.stickyNote", "typeVersion": 1, "position": [ -2368, 192 ], "id": "10839cba-9eb7-472f-b482-375f1dde79c8", "name": "Sticky Note" }, { "parameters": { "content": "**Purpose:** Processes unique articles by extracting content, images, and metadata, then formats and publishes to WordPress.\n\n**Key Steps:**\n1. **Content Extraction:** Pulls full article title, HTML content, and all images from the source URL.\n2. **Structuring:** Analyzes the article to create an outline/message structure.\n3. **Aggregation:** Combines all extracted data into a final, formatted payload.\n4. **Publication:** Automatically uploads the complete article as a new post to the WordPress site.\n\n**Final Result:** A fully formatted blog post published automatically from the RSS feed.", "height": 256, "width": 944 }, "type": "n8n-nodes-base.stickyNote", "typeVersion": 1, "position": [ -384, -240 ], "id": "a43bcc3a-3ebb-46bb-8148-e05eea6b7c6d", "name": "Sticky Note1" }, { "parameters": { "content": "### Final Step - Structuring & Logging\n\n**Purpose:** Formats the final data and publishes it, then logs the action for record-keeping.\n\n**Actions:**\n1. **Structure Data:** Prepares and organizes all extracted content (title, HTML, images) into the correct format for WordPress.\n2. **Publish to WordPress:** Sends a POST request to create a new post on the specified WordPress site.\n3. **Log to Sheets & DB:** Appends a record of the published post to a Google Sheet creating a complete audit trail.\n\n**Result:** The article is now live on the website and its details are saved for tracking and analysis.", "height": 304, "width": 800 }, "type": "n8n-nodes-base.stickyNote", "typeVersion": 1, "position": [ 1744, 80 ], "id": "af8f95a7-c711-42ef-870e-923ad7227261", "name": "Sticky Note2" } ], "pinData": {}, "connections": { "Images": { "main": [ [ { "node": "GET All Images", "type": "main", "index": 0 } ] ] }, "Videos": { "main": [ [ { "node": "Aggregate2", "type": "main", "index": 0 } ] ] }, "GET All Images": { "main": [ [ { "node": "Loop Over Items", "type": "main", "index": 0 } ] ] }, "Loop Over Items": { "main": [ [ { "node": "Aggregate", "type": "main", "index": 0 } ], [ { "node": "Upload Img to WP", "type": "main", "index": 0 } ] ] }, "Aggregate": { "main": [ [ { "node": "Merge", "type": "main", "index": 3 } ] ] }, "Merge": { "main": [ [ { "node": "Structure the data", "type": "main", "index": 0 } ] ] }, "Aggregate2": { "main": [ [ { "node": "Merge", "type": "main", "index": 2 } ] ] }, "Schedule Trigger1": { "main": [ [ { "node": "RSS Read", "type": "main", "index": 0 } ] ] }, "Filter by URL": { "main": [ [ { "node": "Duplicate ArticleCheck", "type": "main", "index": 0 } ] ] }, "Duplicate ArticleCheck": { "main": [ [ { "node": "If", "type": "main", "index": 0 } ] ] }, "RSS Read": { "main": [ [ { "node": "Limit Article", "type": "main", "index": 0 } ] ] }, "Get Website Name": { "main": [ [ { "node": "Filter by URL", "type": "main", "index": 0 } ] ] }, "If": { "main": [ [ { "node": "fetch Article HTML", "type": "main", "index": 0 } ] ] }, "Get Category ID": { "main": [ [ { "node": "Publish Article", "type": "main", "index": 0 } ] ] }, "Update New Data": { "main": [ [ { "node": "GET F Image", "type": "main", "index": 0 } ] ] }, "Publish Article": { "main": [ [ { "node": "Update New Data", "type": "main", "index": 0 } ] ] }, "Set New Category": { "main": [ [ { "node": "Get Category ID", "type": "main", "index": 0 } ] ] }, "Update Embedding": { "main": [ [ { "node": "Set New Category", "type": "main", "index": 0 } ] ] }, "Limit Article": { "main": [ [ { "node": "Get Website Name", "type": "main", "index": 0 } ] ] }, "fetch Article HTML": { "main": [ [ { "node": "Clean HTML", "type": "main", "index": 0 } ] ] }, "Clean HTML": { "main": [ [ { "node": "Take Websites data", "type": "main", "index": 0 }, { "node": "Images", "type": "main", "index": 0 }, { "node": "Content & Title", "type": "main", "index": 0 }, { "node": "Videos", "type": "main", "index": 0 } ] ] }, "Take Websites data": { "main": [ [ { "node": "Merge", "type": "main", "index": 0 } ] ] }, "Upload F img to WP": { "main": [ [ { "node": "Update Feature Img", "type": "main", "index": 0 } ] ] }, "GET F Image": { "main": [ [ { "node": "Upload F img to WP", "type": "main", "index": 0 } ] ] }, "Structure the data": { "main": [ [ { "node": "Ready Article", "type": "main", "index": 0 } ] ] }, "Outline of article": { "main": [ [ { "node": "Merge", "type": "main", "index": 1 } ] ] }, "Ready Article": { "main": [ [ { "node": "Update Embedding", "type": "main", "index": 0 } ] ] }, "Content & Title": { "main": [ [ { "node": "Outline of article", "type": "main", "index": 0 } ] ] }, "Upload Img to WP": { "main": [ [ { "node": "Loop Over Items", "type": "main", "index": 0 } ] ] } }, "active": true, "settings": { "executionOrder": "v1" }, "versionId": "aba5a79e-80c7-4ba4-b6a5-27de6d4de79d", "meta": { "templateCredsSetupCompleted": true, "instanceId": "1f1785d995b3fa32ab6b8219168659331dbe1459fee9ca0c94987e0285ae2676" }, "id": "Sx9MOcD0HnAk7o7E", "tags": [ { "createdAt": "2025-07-23T09:03:28.998Z", "updatedAt": "2025-07-23T09:03:28.998Z", "id": "0TIhg6ju9FxO2Lcp", "name": "Wordpress" }, { "createdAt": "2025-07-23T09:03:28.999Z", "updatedAt": "2025-07-23T09:03:28.999Z", "id": "EytiJJPwSOxyW6Jx", "name": "Article Post" } ] }

Let's Talk Growth!