{
  "id": "UcRJot2fG84lnzNa",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Publish Latest  News on X and Other Social Media Platforms Using Keyword",
  "tags": [],
  "nodes": [
    {
      "id": "9208debf-56cf-4181-adce-b6fd25713142",
      "name": "Check Final Status1",
      "type": "n8n-nodes-base.if",
      "position": [
        -500,
        40
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "or",
          "conditions": [
            {
              "id": "35ed620d-b5d5-4e97-bcc5-52b283d85616",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.status }}",
              "rightValue": "ready"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "906db788-b7c8-4f80-90ed-1d9a556e33d9",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -1500,
        40
      ],
      "parameters": {
        "options": {},
        "formTitle": "News Publisher",
        "formFields": {
          "values": [
            {
              "fieldLabel": "News Name",
              "placeholder": "news",
              "requiredField": true
            },
            {
              "fieldType": "dropdown",
              "fieldLabel": "Country",
              "fieldOptions": {
                "values": [
                  {
                    "option": "US"
                  },
                  {
                    "option": "IN"
                  },
                  {
                    "option": "GB"
                  },
                  {
                    "option": "AU"
                  }
                ]
              },
              "requiredField": true
            }
          ]
        },
        "formDescription": "publish latest news to direct social medial"
      },
      "typeVersion": 2.2
    },
    {
      "id": "e1462542-ddd9-417a-a467-6671e4d68fda",
      "name": "Wait 1 Minutes",
      "type": "n8n-nodes-base.wait",
      "position": [
        -720,
        40
      ],
      "parameters": {
        "amount": 30
      },
      "typeVersion": 1.1
    },
    {
      "id": "53f4a578-b098-459e-bdad-ccf1e9508994",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        0,
        20
      ],
      "parameters": {
        "text": "=You are a professional social media strategist. You'll receive three inputs: a news headline, a URL to the full article, and a country code. \nFirst, understand the headline like a news summary. Then analyze the URL content to extract or simulate key facts, context, quotes, or figures. Use the country code to adjust the tone and hashtags to suit the local audience. \nYour task is to write a post for X (formerly Twitter), within 260 characters, that is clear, engaging, and informative. \n- Do not include any intro, outro, publisher names, or brand mentions. \n- Only output the final tweet text with relevant, topic-based and country-specific hashtags.\n- always output in english langauge.\nhere is the title: \"{{ $json.title }}\" \nhere is the URL: \"{{ $json.url }}\"\ncountry code: \"{{ $json.country }}\"",
        "options": {},
        "promptType": "define"
      },
      "typeVersion": 2
    },
    {
      "id": "cfebdd34-a1f8-47b7-9e2f-8edea038a6b3",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        0,
        260
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o",
          "cachedResultName": "gpt-4o"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "c9514ac6-f29c-490f-8d33-2409eea93973",
      "name": "Get News URL from Google News",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -220,
        20
      ],
      "parameters": {
        "url": "=https://api.brightdata.com/datasets/v3/snapshot/{{ $json.snapshot_id }}",
        "options": {},
        "sendQuery": true,
        "sendHeaders": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "format",
              "value": "json"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer YOUR_TOKEN_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "30b391cb-f56f-4d27-b39c-a3db422c249f",
      "name": "Fetch Latest News",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1240,
        40
      ],
      "parameters": {
        "url": "https://api.brightdata.com/datasets/v3/trigger",
        "method": "POST",
        "options": {},
        "jsonBody": "=[\n  {\n    \"url\": \"https://news.google.com/\",\n    \"keyword\": \"{{ $json['News Name'] }}\",\n    \"country\": \"{{ $json.Country }}\",\n    \"language\": \"\"\n  }\n] ",
        "sendBody": true,
        "sendQuery": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "queryParameters": {
          "parameters": [
            {
              "name": "dataset_id",
              "value": "gd_lnsxoxzi1omrwnka5r"
            },
            {
              "name": "include_errors",
              "value": "true"
            },
            {
              "name": "limit_multiple_results",
              "value": "1"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer YOUR_TOKEN_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "5982536a-2887-408d-ad8b-ec74fc3b7d52",
      "name": "X",
      "type": "n8n-nodes-base.twitter",
      "position": [
        440,
        20
      ],
      "parameters": {
        "text": "={{ $json.output }}",
        "additionalFields": {}
      },
      "credentials": {
        "twitterOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "eddbcbbe-2ef7-4e44-8799-572a9f368213",
      "name": "tweet to URL",
      "type": "n8n-nodes-base.code",
      "position": [
        680,
        20
      ],
      "parameters": {
        "jsCode": "function generateTweetUrl(tweetId) {\n  if (!tweetId || isNaN(tweetId)) {\n    return null;\n  }\n  return `https://twitter.com/i/web/status/${tweetId}`;\n}\n\n// Loop through all input items and process them\nreturn $input.all().map(item => {\n  const tweetId = item.json.tweetId || item.json.id || item.json.tweet_id;\n  const tweetUrl = generateTweetUrl(tweetId);\n  return {\n    json: {\n      ...item.json,\n      tweetUrl,\n    }\n  };\n});"
      },
      "typeVersion": 2
    },
    {
      "id": "e94dd4c9-2c9f-49a8-bf3b-13491e2f9617",
      "name": "Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        940,
        20
      ],
      "parameters": {
        "columns": {
          "value": {
            "Tweet URL": "={{ $json.tweetUrl }}",
            "Tweet Message": "={{ $json.text }}"
          },
          "schema": [
            {
              "id": "Tweet URL",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Tweet URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Tweet Message",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Tweet Message",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1koxNrwdeuaSBdREuKc7JQh3d9blEk0sQDJ8VgVLjPOo/edit#gid=0",
          "cachedResultName": "Data"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1koxNrwdeuaSBdREuKc7JQh3d9blEk0sQDJ8VgVLjPOo",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1koxNrwdeuaSBdREuKc7JQh3d9blEk0sQDJ8VgVLjPOo/edit?usp=drivesdk",
          "cachedResultName": "Publish Latest  News on Social Media Platforms Using Keyword"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "57fc5e5f-6ecd-4933-be5d-02223eae1d9a",
      "name": "Check Snapshot ID Status",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -960,
        40
      ],
      "parameters": {
        "url": "=https://api.brightdata.com/datasets/v3/progress/{{ $json.snapshot_id }}",
        "options": {},
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer YOUR_TOKEN_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2,
      "alwaysOutputData": true
    },
    {
      "id": "1dda70c1-9eca-484e-b109-ca297fcdfe72",
      "name": "Gmail",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1160,
        20
      ],
      "parameters": {
        "sendTo": "=raushan@iwantonlinemarketing.com ",
        "message": "=<p>Hello,</p>  <p>Your news tweet has been published successfully on X (formerly Twitter).</p>  <p>You can view it here: <a href=\"{{ $json['Tweet URL'] }}\" target=\"_blank\">Click to view your tweet</a></p>  <p>Best regards,<br> Team</p>",
        "options": {},
        "subject": "Your News Has Been Published on X (Twitter)"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "8412946a-0b83-4c94-a5e7-bcf11dc77780",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1040,
        -100
      ],
      "parameters": {
        "width": 700,
        "height": 420,
        "content": "## Checking Snapshot ID status in While Loops\n"
      },
      "typeVersion": 1
    },
    {
      "id": "54d35176-cc63-43e2-aabc-bca61fb249af",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -240,
        -120
      ],
      "parameters": {
        "width": 560,
        "height": 520,
        "content": "## Scrap Latest News and Generate Content\ncrapping lastest news from google news and generaint content"
      },
      "typeVersion": 1
    },
    {
      "id": "2992d27f-fb9b-45b2-a4d2-8baffa5faa53",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        920,
        -80
      ],
      "parameters": {
        "width": 560,
        "height": 320,
        "content": "## Update URL in Sheet and Sent Success Mail"
      },
      "typeVersion": 1
    },
    {
      "id": "f1868b0b-c58d-4252-82a7-5399cf22bb0f",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        380,
        -80
      ],
      "parameters": {
        "width": 460,
        "height": 320,
        "content": "## Publishing on X"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "056a411e-ed25-4f5f-ad70-f032b6e21eca",
  "connections": {
    "X": {
      "main": [
        [
          {
            "node": "tweet to URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent": {
      "main": [
        [
          {
            "node": "X",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "tweet to URL": {
      "main": [
        [
          {
            "node": "Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets": {
      "main": [
        [
          {
            "node": "Gmail",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 1 Minutes": {
      "main": [
        [
          {
            "node": "Check Final Status1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Latest News": {
      "main": [
        [
          {
            "node": "Check Snapshot ID Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Fetch Latest News",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Final Status1": {
      "main": [
        [
          {
            "node": "Get News URL from Google News",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Check Snapshot ID Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Snapshot ID Status": {
      "main": [
        [
          {
            "node": "Wait 1 Minutes",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get News URL from Google News": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}