{
  "name": "Track new ranked keywords in Google Sheets with DataForSEO and Slack alerts",
  "nodes": [
    {
      "id": "535ba217-b155-489d-95bc-2e6cc1724135",
      "name": "Aggregate",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        448,
        64
      ]
    },
    {
      "id": "7f44f734-82f6-4206-b199-a631e05401cb",
      "name": "Get ranked keywords",
      "type": "n8n-nodes-dataforseo.dataForSeoLabsApi",
      "position": [
        736,
        432
      ]
    },
    {
      "id": "a5304d6e-eb58-4b30-b721-da585eff27a9",
      "name": "Get previous keywords",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        224,
        64
      ]
    },
    {
      "id": "135ef117-db2e-459c-897c-da9ef4e51244",
      "name": "Get targets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1040,
        64
      ]
    },
    {
      "id": "fda98adf-68b2-42a1-92d8-aed63883aa29",
      "name": "Find new keywords",
      "type": "n8n-nodes-base.code",
      "position": [
        816,
        992
      ]
    },
    {
      "id": "4cd7326f-9f45-40ca-ae35-5ead0b2842b4",
      "name": "Append keyword in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        368,
        992
      ]
    },
    {
      "id": "7577ba15-ccf2-440a-a631-035dd0af37d1",
      "name": "Run every Monday",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        0,
        64
      ]
    },
    {
      "id": "53dba256-7ae8-473b-8d87-294d0c55a7ac",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        896,
        -96
      ],
      "parameters": {
        "width": 272,
        "height": 320,
        "content": "## Get targets\nSelect a spreadsheet with your target domains. The spreadsheet must have the same columns as in [this Example](https://docs.google.com/spreadsheets/d/1FO9Btg5y5TmE56La4O-QzJbEjGAZLe3zG0"
      }
    },
    {
      "id": "1d4d9366-c24a-4677-9c5b-8229f82eb438",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        272,
        320
      ],
      "parameters": {
        "width": 1264,
        "height": 352,
        "content": "## Get ranked keywords from DataForSEO\nCreate a DataForSEO connection and set up additional parameters if needed."
      }
    },
    {
      "id": "bca064d2-83aa-4b66-ad70-04d2fd4325eb",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        112,
        848
      ],
      "parameters": {
        "width": 1264,
        "height": 304,
        "content": "## Save current ranked keywords to the spreadsheet and send new keywords to Slack\nSelect the same spreadsheet with your keywords as in the first Google Sheets node.\n Add additional information to the "
      }
    },
    {
      "id": "bf831615-5b6e-40f1-8666-5a7742eebc51",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -544,
        0
      ],
      "parameters": {
        "width": 400,
        "height": 640,
        "content": "This workflow automatically fetches new keywords your domains started ranking for on Google, saves them into Google Sheets, and sends you a Slack summary so you can quickly see what’s changed.\n\n## How"
      }
    },
    {
      "id": "4f3dfd65-78bf-4a34-b9f5-1ca2f0abca2a",
      "name": "Aggregate1",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        592,
        992
      ]
    },
    {
      "id": "24f0262a-42c6-48f8-b7cd-297941979295",
      "name": "Merge \"items\" with DFS response",
      "type": "n8n-nodes-base.set",
      "position": [
        960,
        432
      ]
    },
    {
      "id": "600cf175-aaad-46e1-95a1-514dc826d27d",
      "name": "Set \"items\" field",
      "type": "n8n-nodes-base.set",
      "position": [
        512,
        512
      ]
    },
    {
      "id": "6444f643-8d47-4dfb-8d11-25ed0f69243b",
      "name": "Merge \"items\" with last response",
      "type": "n8n-nodes-base.set",
      "position": [
        1392,
        512
      ]
    },
    {
      "id": "ce95e02f-de55-43fc-820c-bc84e659dae4",
      "name": "Clear sheet (Keywords)",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        672,
        64
      ]
    },
    {
      "id": "3edd9e7a-7a35-451a-9c8f-2dd540101299",
      "name": "Loop Over Targets",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        48,
        496
      ]
    },
    {
      "id": "148c8864-e713-403c-8eb9-b1fc90142ee3",
      "name": "Send a message",
      "type": "n8n-nodes-base.slack",
      "position": [
        1248,
        992
      ]
    },
    {
      "id": "9618569c-b39f-49cd-8731-2c4effd92edf",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        160,
        -96
      ],
      "parameters": {
        "width": 672,
        "height": 320,
        "content": "## Get previous keywords and clear the sheet\nCreate a Google Sheets connection and select the spreadsheet where keywords should be saved. The sheet must have the same columns as in [this Example](http"
      }
    },
    {
      "id": "a357acce-d6f4-4acb-bb92-e0adf8fb66c8",
      "name": "Has more pages?",
      "type": "n8n-nodes-base.if",
      "position": [
        1152,
        496
      ]
    },
    {
      "id": "2d838c6d-c566-44dd-b08f-f658b3d70e62",
      "name": "Split out (items)",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        144,
        992
      ]
    },
    {
      "id": "9c34c2cb-91a4-454c-b171-d0fa84c4d77d",
      "name": "Filter (has new keywords)",
      "type": "n8n-nodes-base.filter",
      "position": [
        1024,
        992
      ]
    },
    {
      "id": "1f531e89-397e-4b3a-a230-05f3fff3708f",
      "name": "Initialize \"items\" field",
      "type": "n8n-nodes-base.set",
      "position": [
        288,
        512
      ]
    }
  ],
  "connections": {
    "Aggregate": {
      "main": [
        [
          {
            "node": "Clear sheet (Keywords)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate1": {
      "main": [
        [
          {
            "node": "Find new keywords",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get targets": {
      "main": [
        [
          {
            "node": "Loop Over Targets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send a message": {
      "main": [
        [
          {
            "node": "Loop Over Targets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Has more pages?": {
      "main": [
        [
          {
            "node": "Set \"items\" field",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Merge \"items\" with last response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Run every Monday": {
      "main": [
        [
          {
            "node": "Get previous keywords",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Find new keywords": {
      "main": [
        [
          {
            "node": "Filter (has new keywords)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Targets": {
      "main": [
        [],
        [
          {
            "node": "Initialize \"items\" field",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set \"items\" field": {
      "main": [
        [
          {
            "node": "Get ranked keywords",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split out (items)": {
      "main": [
        [
          {
            "node": "Append keyword in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get ranked keywords": {
      "main": [
        [
          {
            "node": "Merge \"items\" with DFS response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get previous keywords": {
      "main": [
        [
          {
            "node": "Aggregate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Clear sheet (Keywords)": {
      "main": [
        [
          {
            "node": "Get targets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Append keyword in sheet": {
      "main": [
        [
          {
            "node": "Aggregate1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Initialize \"items\" field": {
      "main": [
        [
          {
            "node": "Set \"items\" field",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter (has new keywords)": {
      "main": [
        [
          {
            "node": "Send a message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge \"items\" with DFS response": {
      "main": [
        [
          {
            "node": "Has more pages?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge \"items\" with last response": {
      "main": [
        [
          {
            "node": "Split out (items)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}