{
  "name": "Monitor backlink profile with SE Ranking",
  "tags": [],
  "nodes": [
    {
      "id": "b406b7f4-bcc6-453f-95c8-61193d914ac0",
      "name": "Manual Trigger",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        832,
        496
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "207a9b9a-93c9-40d6-a590-8a8e5aeb4661",
      "name": "Get backlinks summary",
      "type": "@seranking/n8n-nodes-seranking.seRanking",
      "position": [
        1056,
        496
      ],
      "parameters": {
        "target": "example.com",
        "resource": "backlinks",
        "additionalFields": {}
      },
      "credentials": {
        "seRankingApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "b4097159-c748-45a8-889e-13efb7de154b",
      "name": "Get new backlinks",
      "type": "@seranking/n8n-nodes-seranking.seRanking",
      "position": [
        1280,
        368
      ],
      "parameters": {
        "dateTo": "={{ $now.toFormat('yyyy-MM-dd') }}",
        "target": "example.com",
        "dateFrom": "={{ $now.minus(30, 'days').toFormat('yyyy-MM-dd') }}",
        "resource": "backlinks",
        "operation": "getHistory",
        "additionalFields": {
          "mode": "as_root",
          "limit": 100
        }
      },
      "credentials": {
        "seRankingApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "603e703f-d903-4f22-a788-a06fb79adbd3",
      "name": "Get lost backlinks",
      "type": "@seranking/n8n-nodes-seranking.seRanking",
      "position": [
        1280,
        608
      ],
      "parameters": {
        "dateTo": "={{ $now.toFormat('yyyy-MM-dd') }}",
        "target": "example.com",
        "dateFrom": "={{ $now.minus(30, 'days').toFormat('yyyy-MM-dd') }}",
        "resource": "backlinks",
        "operation": "getHistory",
        "additionalFields": {
          "mode": "as_root",
          "limit": 100
        }
      },
      "credentials": {
        "seRankingApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "409f06db-2305-4b69-a3c3-43fd1c6884f8",
      "name": "Get referring domains",
      "type": "@seranking/n8n-nodes-seranking.seRanking",
      "position": [
        1504,
        368
      ],
      "parameters": {
        "target": "example.com",
        "resource": "backlinks",
        "operation": "getRefDomains",
        "additionalFields": {
          "mode": "as_root",
          "limit": 100
        }
      },
      "credentials": {
        "seRankingApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "9d54bb74-0079-4046-b286-f0dfb821a218",
      "name": "Get anchor texts",
      "type": "@seranking/n8n-nodes-seranking.seRanking",
      "position": [
        1504,
        608
      ],
      "parameters": {
        "target": "example.com",
        "resource": "backlinks",
        "operation": "getAnchors",
        "additionalFields": {
          "mode": "as_root",
          "limit": 50
        }
      },
      "credentials": {
        "seRankingApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "31899811-6050-4d43-913e-b73dbeca2e8c",
      "name": "Get authority metrics",
      "type": "@seranking/n8n-nodes-seranking.seRanking",
      "position": [
        1712,
        368
      ],
      "parameters": {
        "target": "example.com",
        "resource": "backlinks",
        "operation": "getAuthority"
      },
      "credentials": {
        "seRankingApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "16c25f0d-c6be-4d25-b06a-f7a32cad3d09",
      "name": "Get daily backlinks count",
      "type": "@seranking/n8n-nodes-seranking.seRanking",
      "position": [
        1712,
        608
      ],
      "parameters": {
        "dateTo": "={{ $now.toFormat('yyyy-MM-dd') }}",
        "target": "example.com",
        "dateFrom": "={{ $now.minus(30, 'days').toFormat('yyyy-MM-dd') }}",
        "resource": "backlinks",
        "operation": "getHistoryCount",
        "additionalFields": {
          "mode": "as_root"
        }
      },
      "credentials": {
        "seRankingApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "c87ec3ed-8160-44e7-89e9-aa9b922332c7",
      "name": "Get cumulative history",
      "type": "@seranking/n8n-nodes-seranking.seRanking",
      "position": [
        1936,
        368
      ],
      "parameters": {
        "dateTo": "={{ $now.toFormat('yyyy-MM-dd') }}",
        "target": "example.com",
        "dateFrom": "={{ $now.minus(60, 'days').toFormat('yyyy-MM-dd') }}",
        "resource": "backlinks",
        "operation": "getCumulativeHistory",
        "additionalFields": {
          "mode": "as_root"
        }
      },
      "credentials": {
        "seRankingApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "514cf75b-947d-46dc-8480-7761ba46b589",
      "name": "Get pages with backlinks",
      "type": "@seranking/n8n-nodes-seranking.seRanking",
      "position": [
        1936,
        608
      ],
      "parameters": {
        "target": "example.com",
        "resource": "backlinks",
        "operation": "getPages",
        "additionalFields": {
          "mode": "as_root",
          "limit": 100
        }
      },
      "credentials": {
        "seRankingApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "9cdef420-10ab-45bc-835d-7ccfad5284f1",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        2160,
        496
      ],
      "parameters": {
        "mode": "combine",
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "b87a2c29-1008-4a14-ae23-429ea971c2f7",
      "name": "Format for Sheet",
      "type": "n8n-nodes-base.code",
      "position": [
        2384,
        496
      ],
      "parameters": {
        "jsCode": "const output = [];\n\nfunction addHeader(title) {\n  output.push({ json: { A: '=== ' + title + ' ===' } });\n}\n\nfunction addSpace() {\n  for (let i = 0; i < 5; i++) {\n    output.push({ json: { A: '' } });\n  }\n}\n\n// 1. SUMMARY\naddHeader('SUMMARY');\nconst summaryData = $('Get backlinks summary').first().json.summary || [];\nif (summaryData.length > 0) {\n  output.push({ json: { A: 'target', B: 'backlinks', C: 'refdomains', D: 'dofollow', E: 'nofollow', F: 'inlink_rank', G: 'domain_inlink_rank' } });\n  for (const item of summaryData) {\n    output.push({\n      json: {\n        A: item.target || '',\n        B: item.backlinks || 0,\n        C: item.refdomains || 0,\n        D: item.dofollow_backlinks || 0,\n        E: item.nofollow_backlinks || 0,\n        F: item.inlink_rank || 0,\n        G: item.domain_inlink_rank || 0\n      }\n    });\n  }\n}\n\naddSpace();\n\n// 2. AUTHORITY\naddHeader('AUTHORITY');\nconst authorityData = $('Get authority metrics').first().json.pages || [];\nif (authorityData.length > 0) {\n  output.push({ json: { A: 'url', B: 'inlink_rank', C: 'domain_inlink_rank' } });\n  for (const item of authorityData) {\n    output.push({\n      json: {\n        A: item.url || '',\n        B: item.inlink_rank || 0,\n        C: item.domain_inlink_rank || 0\n      }\n    });\n  }\n}\n\naddSpace();\n\n// 3. NEW BACKLINKS\naddHeader('NEW BACKLINKS');\nconst newData = $('Get new backlinks').first().json.new_lost_backlinks || [];\nif (newData.length > 0) {\n  output.push({ json: { A: 'date', B: 'url_from', C: 'url_to', D: 'anchor', E: 'nofollow', F: 'domain_inlink_rank' } });\n  for (const item of newData) {\n    output.push({\n      json: {\n        A: item.new_lost_date || '',\n        B: item.url_from || '',\n        C: item.url_to || '',\n        D: item.anchor || '',\n        E: item.nofollow ? 'Yes' : 'No',\n        F: item.domain_inlink_rank || 0\n      }\n    });\n  }\n}\n\naddSpace();\n\n// 4. LOST BACKLINKS\naddHeader('LOST BACKLINKS');\nconst lostData = $('Get lost backlinks').first().json.new_lost_backlinks || [];\nif (lostData.length > 0) {\n  output.push({ json: { A: 'date', B: 'url_from', C: 'url_to', D: 'anchor', E: 'reason_lost' } });\n  for (const item of lostData) {\n    output.push({\n      json: {\n        A: item.new_lost_date || '',\n        B: item.url_from || '',\n        C: item.url_to || '',\n        D: item.anchor || '',\n        E: item.reason_lost || ''\n      }\n    });\n  }\n}\n\naddSpace();\n\n// 5. REFERRING DOMAINS\naddHeader('REFERRING DOMAINS');\nconst refData = $('Get referring domains').first().json.refdomains || [];\nif (refData.length > 0) {\n  output.push({ json: { A: 'refdomain', B: 'backlinks', C: 'dofollow', D: 'domain_inlink_rank', E: 'first_seen' } });\n  for (const item of refData) {\n    output.push({\n      json: {\n        A: item.refdomain || '',\n        B: item.backlinks || 0,\n        C: item.dofollow_backlinks || 0,\n        D: item.domain_inlink_rank || 0,\n        E: item.first_seen || ''\n      }\n    });\n  }\n}\n\naddSpace();\n\n// 6. ANCHOR TEXTS\naddHeader('ANCHOR TEXTS');\nconst anchorData = $('Get anchor texts').first().json.anchors || [];\nif (anchorData.length > 0) {\n  output.push({ json: { A: 'anchor', B: 'backlinks', C: 'refdomains', D: 'dofollow' } });\n  for (const item of anchorData) {\n    output.push({\n      json: {\n        A: item.anchor || '[empty]',\n        B: item.backlinks || 0,\n        C: item.refdomains || 0,\n        D: item.dofollow_backlinks || 0\n      }\n    });\n  }\n}\n\naddSpace();\n\n// 7. DAILY HISTORY\naddHeader('DAILY HISTORY');\nconst dailyData = $('Get daily backlinks count').first().json.new_lost_backlinks_count || [];\nif (dailyData.length > 0) {\n  output.push({ json: { A: 'date', B: 'new', C: 'lost', D: 'net' } });\n  for (const item of dailyData) {\n    output.push({\n      json: {\n        A: item.date || '',\n        B: item.new || 0,\n        C: item.lost || 0,\n        D: (item.new || 0) - (item.lost || 0)\n      }\n    });\n  }\n}\n\naddSpace();\n\n// 8. CUMULATIVE HISTORY\naddHeader('CUMULATIVE HISTORY');\nconst cumulativeData = $('Get cumulative history').first().json.backlinks_count || [];\nif (cumulativeData.length > 0) {\n  output.push({ json: { A: 'date', B: 'backlinks' } });\n  for (const item of cumulativeData) {\n    output.push({\n      json: {\n        A: item.date || '',\n        B: item.backlinks || 0\n      }\n    });\n  }\n}\n\nreturn output;"
      },
      "typeVersion": 2
    },
    {
      "id": "export-google-sheets",
      "name": "Export to Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2592,
        496
      ],
      "parameters": {
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "ff116fe0-cb04-4327-a2b6-dbd96cebd02a",
      "name": "Workflow Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        320,
        -112
      ],
      "parameters": {
        "color": 5,
        "width": 560,
        "height": 1080,
        "content": "## Monitor backlink profile with SE Ranking\n\n## Who is this for\n- SEO pros tracking client link building progress\n- Website owners watching their backlink growth\n- Digital marketers analyzing domain authority trends\n\n## What this workflow does\nCheck your backlink profile to see which sites are linking to you, track new links you've gained, spot links you've lost, and export everything to Google Sheets.\n\n## What you'll get\n- Total backlinks and referring domains snapshot\n- New backlinks you gained in the last 30 days\n- Lost backlinks from the last 30 days (with reasons why)\n- Your top referring domains ranked by authority\n- Anchor text analysis showing how sites link to you\n- Domain authority scores and trust metrics\n- Daily trends showing link gains and losses\n- Historical growth data over the last 60 days\n\n## How it works\n1. Pulls your overall backlink profile stats\n2. Checks for new backlinks from the last month\n3. Identifies which backlinks you lost recently\n4. Lists your top referring domains by authority\n5. Analyzes the anchor text people use to link to you\n6. Gets your domain authority and trust scores\n7. Shows daily gains and losses over 30 days\n8. Grabs historical data to see growth over 60 days\n9. Organizes everything into clear sections in a spreadsheet\n\n## Requirements\n- Self-hosted n8n instance\n- SE Ranking community node installed\n- SE Ranking API token ([Get one here](https://online.seranking.com/admin.api.dashboard.html))\n- Google Sheets account (optional)\n\n## Setup\n1. Install the [SE Ranking community node](https://www.npmjs.com/package/@seranking/n8n-nodes-seranking)\n2. Add your SE Ranking API credentials\n3. Replace `example.com` with your domain in all SE Ranking nodes\n4. Connect Google Sheets if you want to export data (optional)\n\n## Customization\n- Change the time periods (currently 30 or 60 days) by editing `dateFrom` and `dateTo`\n- Get more or fewer results by adjusting the `limit` settings\n- Sort by different metrics by changing `order_by` (like first_seen or backlinks)\n- Add a Schedule Trigger to run this automatically every week"
      },
      "typeVersion": 1
    },
    {
      "id": "sticky-data-collection",
      "name": "Data Collection",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1020,
        280
      ],
      "parameters": {
        "width": 1000,
        "height": 140,
        "content": "### \ud83d\udcca Data Collection\nGrabs backlink data from SE Ranking: summary stats, new/lost links, referring domains, anchor texts, authority metrics, and historical trends."
      },
      "typeVersion": 1
    },
    {
      "id": "sticky-formatting",
      "name": "Formatting & Export",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2140,
        380
      ],
      "parameters": {
        "width": 500,
        "height": 140,
        "content": "### \ud83d\udce4 Formatting & Export\nCombines all the data, organizes it into clear sections with headers, and saves to Google Sheets."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "connections": {
    "Merge": {
      "main": [
        [
          {
            "node": "Format for Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Manual Trigger": {
      "main": [
        [
          {
            "node": "Get backlinks summary",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format for Sheet": {
      "main": [
        [
          {
            "node": "Export to Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get anchor texts": {
      "main": [
        [
          {
            "node": "Get daily backlinks count",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get new backlinks": {
      "main": [
        [
          {
            "node": "Get referring domains",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get lost backlinks": {
      "main": [
        [
          {
            "node": "Get anchor texts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get authority metrics": {
      "main": [
        [
          {
            "node": "Get cumulative history",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get backlinks summary": {
      "main": [
        [
          {
            "node": "Get new backlinks",
            "type": "main",
            "index": 0
          },
          {
            "node": "Get lost backlinks",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get referring domains": {
      "main": [
        [
          {
            "node": "Get authority metrics",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get cumulative history": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get pages with backlinks": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Get daily backlinks count": {
      "main": [
        [
          {
            "node": "Get pages with backlinks",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}