AutomationFlowsSocial Media › Scrape TikTok Influencer Profiles to Google Sheets

Scrape TikTok Influencer Profiles to Google Sheets

Original n8n title: Scrape Tiktok Influencer Profiles with Bright Data API to Google Sheets

Byankitkansaldev @ankitkansaldev on n8n.io

A comprehensive n8n automation that scrapes TikTok influencer profiles using Bright Data's TikTok dataset and automatically saves detailed profile information to Google Sheets.

Event trigger★★★★☆ complexity14 nodesGoogle SheetsForm TriggerHTTP Request
Social Media Trigger: Event Nodes: 14 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #5434 — we link there as the canonical source.

This workflow follows the Form Trigger → Google Sheets recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "51mGQheuAtcpMIni",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "TikTok Influencer Scraper (URL Input) via Bright Data + n8n & Sheets",
  "tags": [],
  "nodes": [
    {
      "id": "cecd9054-e1b1-4653-8523-667abb4f34de",
      "name": "Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -1160,
        -585
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [
            {
              "id": "status",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "message",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "message",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1469389487,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1OeqtCFm4Wek9DI5YFOWQXTpQJS-SJxC10iAPKEKkmiY/edit#gid=1469389487",
          "cachedResultName": "TikTok profile by url"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1OeqtCFm4Wek9DI5YFOWQXTpQJS-SJxC10iAPKEKkmiY",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1OeqtCFm4Wek9DI5YFOWQXTpQJS-SJxC10iAPKEKkmiY/edit?usp=drivesdk",
          "cachedResultName": "TikTok Data"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "fff3bf36-657c-41ce-a8f8-a616fa37e74e",
      "name": "Search by Profile URL",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -2480,
        -585
      ],
      "parameters": {
        "options": {},
        "formTitle": "TikTok Scraper",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Search by Profile"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "ee105b60-53ca-4dc5-9e2c-9d585f517014",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2520,
        -660
      ],
      "parameters": {
        "color": 2,
        "width": 180,
        "height": 240,
        "content": "\ud83d\udcdd Trigger \u2013 Start on TikTok profile form submit\n"
      },
      "typeVersion": 1
    },
    {
      "id": "a119bb40-0f68-4dbb-ad3f-6bc9011480d3",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2320,
        -660
      ],
      "parameters": {
        "color": 3,
        "width": 200,
        "height": 260,
        "content": "\ud83d\udce4 Trigger API \u2013 Send TikTok profile to scrape"
      },
      "typeVersion": 1
    },
    {
      "id": "7e0d239b-6a30-4286-9aeb-220565556341",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2100,
        -660
      ],
      "parameters": {
        "color": 4,
        "width": 200,
        "height": 260,
        "content": "\u23f3 Check Status \u2013 Is profile data ready?\n"
      },
      "typeVersion": 1
    },
    {
      "id": "63fab444-eed4-4501-a46c-3c5f6889cfdd",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1860,
        -660
      ],
      "parameters": {
        "color": 5,
        "width": 200,
        "height": 240,
        "content": "\u23f1\ufe0f Wait \u2013 Pause before retrying Bright Data\n"
      },
      "typeVersion": 1
    },
    {
      "id": "841414e5-8258-4c07-83ec-ccb489061019",
      "name": "Sends profile URLs to Bright Data to trigger scraping",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -2280,
        -580
      ],
      "parameters": {
        "url": "https://api.brightdata.com/datasets/v3/trigger",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"input\": [\n    {\n      \"search_url\": \"https://www.tiktok.com/explore?lang=en\",\n      \"country\": \"US\"\n    },\n    {\n      \"search_url\": \"https://www.tiktok.com/search?lang=en&q=music&t=1685628060008\",\n      \"country\": \"FR\"\n    }\n  ],\n  \"custom_output_fields\": [\n    \"account_id\",\n    \"nickname\",\n    \"biography\",\n    \"like_engagement_rate\",\n    \"bio_link\",\n    \"is_verified\",\n    \"followers\",\n    \"following\",\n    \"likes\",\n    \"videos_count\",\n    \"id\",\n    \"url\",\n    \"profile_pic_url\",\n    \"profile_pic_url_hd\",\n    \"relation\",\n    \"open_favorite\",\n    \"top_videos\",\n    \"comment_engagement_rate\",\n    \"is_under_age_18\",\n    \"region\"\n  ]\n}",
        "sendBody": true,
        "sendQuery": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "queryParameters": {
          "parameters": [
            {
              "name": "dataset_id",
              "value": "gd_l1villgoiiidt09ci"
            },
            {
              "name": "include_errors",
              "value": "true"
            },
            {
              "name": "type",
              "value": "discover_new"
            },
            {
              "name": "discover_by",
              "value": "search_url"
            },
            {
              "name": "limit_per_input",
              "value": "2"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer YOUR_TOKEN_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "f1ee39f7-bd6d-4d05-bfa2-fffb66b5a025",
      "name": "Checks scraping progress from Bright Data",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -2040,
        -585
      ],
      "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": "2805c806-a09f-41c9-a434-395c48ab7ab3",
      "name": "Waits 30 seconds before retrying snapshot check",
      "type": "n8n-nodes-base.wait",
      "position": [
        -1820,
        -580
      ],
      "parameters": {
        "amount": 30
      },
      "typeVersion": 1.1
    },
    {
      "id": "45721340-9da7-4ff9-bf09-686ff1765a1b",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1640,
        -680
      ],
      "parameters": {
        "color": 6,
        "width": 200,
        "height": 260,
        "content": "\u2705 Is Ready? \u2013 Yes: proceed, No: retry\n"
      },
      "typeVersion": 1
    },
    {
      "id": "6786e251-2416-4dc5-94d5-5d45d4eb57c0",
      "name": "IF condition to check if Bright Data returned ready status",
      "type": "n8n-nodes-base.if",
      "position": [
        -1600,
        -585
      ],
      "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": "764cc1d3-0d20-4199-8172-cfb028a474ff",
      "name": "Gets TikTok influencer details from Bright Data using snapshot ID",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1380,
        -585
      ],
      "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": "ce911e6e-1e73-4d8f-a247-60bfe7ddbd09",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1420,
        -680
      ],
      "parameters": {
        "color": 7,
        "width": 200,
        "height": 260,
        "content": "\ud83d\udce5 Get Data \u2013 Extract scraped influencer info\n"
      },
      "typeVersion": 1
    },
    {
      "id": "e724a597-7cf9-4b4c-b1d3-f279e2e8ac93",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1200,
        -680
      ],
      "parameters": {
        "color": 2,
        "width": 200,
        "height": 260,
        "content": "\ud83d\udcc4 Save to Sheet \u2013 Write data to Google Sheet\n\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "ff15a117-2c54-4463-a28d-06c41605b475",
  "connections": {
    "Google Sheets": {
      "main": [
        []
      ]
    },
    "Search by Profile URL": {
      "main": [
        [
          {
            "node": "Sends profile URLs to Bright Data to trigger scraping",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Checks scraping progress from Bright Data": {
      "main": [
        [
          {
            "node": "Waits 30 seconds before retrying snapshot check",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Waits 30 seconds before retrying snapshot check": {
      "main": [
        [
          {
            "node": "IF condition to check if Bright Data returned ready status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Sends profile URLs to Bright Data to trigger scraping": {
      "main": [
        [
          {
            "node": "Checks scraping progress from Bright Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IF condition to check if Bright Data returned ready status": {
      "main": [
        [
          {
            "node": "Gets TikTok influencer details from Bright Data using snapshot ID",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Checks scraping progress from Bright Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Gets TikTok influencer details from Bright Data using snapshot ID": {
      "main": [
        [
          {
            "node": "Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

A comprehensive n8n automation that scrapes TikTok influencer profiles using Bright Data's TikTok dataset and automatically saves detailed profile information to Google Sheets.

Source: https://n8n.io/workflows/5434/ — original creator credit. Request a take-down →

More Social Media workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Social Media

This automated workflow allows seamless conversion of YouTube videos to MP3, using the YouTube to MP3 Downloader API. The converted MP3 files are uploaded to Google Drive, and all relevant conversion

Form Trigger, HTTP Request, Google Drive +1
Social Media

Convert TikTok videos to MP4 , MP3 (without watermark), upload to Google Drive, and log conversion attempts into Google Sheets automatically — powered by TikTok Download Audio Video API.

Form Trigger, Google Sheets, Google Drive +1
Social Media

Easily convert Facebook videos into downloadable MP4 files using Facebook Video Downloader API. This n8n workflow automates fetching videos, downloading them, uploading them to Google Drive, and loggi

Form Trigger, Google Sheets, Google Drive +1
Social Media

This n8n workflow enables users to convert Instagram video links into downloadable MP4 files, store them in Google Drive, and log the results (success or failure) in Google Sheets. On form submission

Form Trigger, Google Sheets, Google Drive +1
Social Media

Description: Easily discover trending YouTube videos by country and language using this automated n8n workflow. The flow leverages the YouTube Trend Finder API and logs insights to Google Sheets — ide

Form Trigger, HTTP Request, Google Sheets