LinkedIn Sales Navigator連絡先を自動ページングでGoogle Sheetsへ抽出
中級
これはContent Creation, Multimodal AI分野の自動化ワークフローで、15個のノードを含みます。主にIf, Set, Code, Wait, HttpRequestなどのノードを使用。 自動ページングを使用してLinkedIn Sales Navigatorの連絡先をGoogle Sheetsへ抽出
前提条件
- •ターゲットAPIの認証情報が必要な場合あり
- •Google Sheets API認証情報
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"meta": {
"instanceId": "8d41476c63702cd0f2be55363b48153c5d4820bb18197ca147e7be50ef236112",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "120b55a2-ed29-4a35-9265-18940cee8b21",
"name": "LinkedInの連絡先をスクレイピング API",
"type": "n8n-nodes-base.httpRequest",
"position": [
-768,
-32
],
"parameters": {
"url": "https://api.nickautomations.com/linkedin/scrape",
"method": "POST",
"options": {},
"sendBody": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "cookies",
"value": "={{ $json.cookies }}"
},
{
"name": "url",
"value": "={{ $json.url }}"
},
{
"name": "scraper_type",
"value": "={{ $json.scraper_type }}"
},
{
"name": "start",
"value": "={{ $json.start }}"
}
]
},
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "EIsUiqyM6Juv63hK",
"name": "[linkedin-scraper-api] Header Auth"
}
},
"typeVersion": 4.2
},
{
"id": "93f2cf65-a67c-4f8d-9512-6ab51bdfb973",
"name": "連絡先データ配列を抽出",
"type": "n8n-nodes-base.code",
"position": [
-544,
-32
],
"parameters": {
"jsCode": "// Get all items from the previous node\nconst items = $input.all();\n\n// Assuming the payload is in the first item\nconst payload = items[0].json;\n\n// Return the nested 'data' array for the next node\nreturn payload.data;"
},
"typeVersion": 2
},
{
"id": "3f8a9eb7-0df9-4464-a3cd-ae2ca5db2d55",
"name": "連絡先をGoogle Sheetsに保存",
"type": "n8n-nodes-base.googleSheets",
"position": [
-320,
-32
],
"parameters": {
"columns": {
"value": {
"id": "={{ $json.id }}",
"title": "={{ $json.title }}",
"fullName": "={{ $json.fullName }}",
"industry": "={{ $json.industry }}",
"lastName": "={{ $json.lastName }}",
"location": "={{ $json.location }}",
"firstName": "={{ $json.firstName }}",
"profileUrl": "={{ 'https://www.linkedin.com/in/' + $json.entityUrn.split('(')[1].split(',')[0] }}",
"companyName": "={{ $json.companyName }}",
"companyLocation": "={{ $json.companyLocation }}"
},
"schema": [
{
"id": "id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "id",
"defaultMatch": true,
"canBeUsedToMatch": true
},
{
"id": "firstName",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "firstName",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "lastName",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "lastName",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "fullName",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "fullName",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "location",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "location",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "title",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "companyName",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "companyName",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "companyLocation",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "companyLocation",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "industry",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "industry",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "profileUrl",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "profileUrl",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"id"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1IZUmM6cTe4Fmona9tWcfX6A0F4G0Di4VyZUhxKAbp0M/edit#gid=0",
"cachedResultName": "LinkedIn Contacts"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1IZUmM6cTe4Fmona9tWcfX6A0F4G0Di4VyZUhxKAbp0M",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1IZUmM6cTe4Fmona9tWcfX6A0F4G0Di4VyZUhxKAbp0M/edit?usp=drivesdk",
"cachedResultName": "LinkedIn Contacts"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "V4NHfo08zBK4IW4e",
"name": "[Naveen]Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "a8d46ea2-2543-4f9d-ab03-07f3b0347a87",
"name": "追加ページの有無を確認",
"type": "n8n-nodes-base.if",
"position": [
-96,
-32
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "81c52d64-e7d8-4d23-aaba-6befa2f6e46a",
"operator": {
"type": "number",
"operation": "lt"
},
"leftValue": "={{ $('Scrape LinkedIn Contacts API').item.json.paging.start - $('Set Search Parameters').item.json.start/25 }}",
"rightValue": "={{ $('Set Search Parameters').item.json.total_pages }}"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "e18e663a-f637-4df9-a4fb-c5c9b4b6fcf0",
"name": "ページ開始パラメータを増分",
"type": "n8n-nodes-base.set",
"position": [
128,
-48
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "9b805fcd-3929-464c-8338-d8c365873c0b",
"name": "start",
"type": "number",
"value": "={{ $('Scrape LinkedIn Contacts API').item.json.paging.start + 25 }}"
}
]
}
},
"executeOnce": true,
"typeVersion": 3.4
},
{
"id": "ddf0bf2a-6395-4afe-8e50-dc954a0889af",
"name": "リクエスト間のレート制限ディレイ",
"type": "n8n-nodes-base.wait",
"position": [
352,
48
],
"webhookId": "ba610b94-c1e1-40cf-9136-061cdfdebb15",
"parameters": {
"amount": "={{ Math.floor(Math.random() * (60 - 30 + 1)) + 30 }}"
},
"typeVersion": 1.1
},
{
"id": "b6f3aefc-aae0-48a3-b812-5c628f8d9a98",
"name": "付箋",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1232,
-224
],
"parameters": {
"width": 416,
"height": 224,
"content": "### Configuration Settings\n\n**cookies**: LinkedIn session cookies (required)\n**url**: LinkedIn Sales Navigator search URL\n**scraper_type**: contacts\n**total_pages**: Number of pages to scrape (default: 2)\n\nEach page contains ~25 contacts\nModify these values before running"
},
"typeVersion": 1
},
{
"id": "1110cbb4-a93c-4aa4-b5f9-7229487dda40",
"name": "付箋1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-704,
-240
],
"parameters": {
"color": 5,
"width": 496,
"height": 192,
"content": "### Scraping Process\n\n1. API fetches contact data from LinkedIn\n2. Extract nested contact array from response\n3. Save contact details to Google Sheets\n\nData includes: name, title, company, location, profile URL, etc."
},
"typeVersion": 1
},
{
"id": "15dabc04-686b-4273-b7e7-3d7efe326681",
"name": "付箋2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-128,
-240
],
"parameters": {
"color": 4,
"width": 416,
"height": 192,
"content": "### Pagination Logic\n\nChecks if more pages exist\nIf YES → Increment start parameter (+25)\nIf NO → Workflow completes\n\nLoop continues until all pages are scraped"
},
"typeVersion": 1
},
{
"id": "fd5eafc2-36c6-4e86-87d5-3d74f2b9396e",
"name": "付箋3",
"type": "n8n-nodes-base.stickyNote",
"position": [
112,
240
],
"parameters": {
"color": 3,
"width": 416,
"content": "### Rate Limiting Protection **(DON'T LOWER THIS)**\n\nRandom delay: 30-60 seconds between requests\n\nPrevents LinkedIn API blocks\nMimics human browsing behavior"
},
"typeVersion": 1
},
{
"id": "9a22691a-daa3-4fba-bc83-ad90f86134e5",
"name": "付箋4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1680,
-48
],
"parameters": {
"color": 6,
"width": 400,
"height": 400,
"content": "## Get 1 Month Free API Access\n\nNeed API credentials?\n\n[Email Naveen to request access](mailto:nchoudhary110792@gmail.com?subject=LinkedIn%20Scraper%20API%20-%20Free%201%20Month%20Access%20Request&body=Hi%20Naveen%2C%0A%0AI%20would%20like%20to%20request%201%20month%20of%20free%20access%20to%20the%20LinkedIn%20Scraper%20API.%0A%0AName%3A%20%0AEmail%3A%20%0AUse%20Case%3A%20%0A%0AThank%20you!)\n\nYou'll receive your API keys within 24 hours\n\n**How to add your API key:**\n1. Click on \"Fetch LinkedIn Contacts\" node\n2. Scroll to \"Authentication\" section\n3. Select \"Header Auth\" credential\n4. Click \"Create New Credential\"\n5. Set Name: \"x-api-key\"\n6. Set Value: [Your API key from email]\n7. Save and test the workflow\n"
},
"typeVersion": 1
},
{
"id": "d8ec7f32-3a28-45c3-b4ff-1419016af252",
"name": "付箋5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-944,
256
],
"parameters": {
"color": 2,
"width": 720,
"height": 352,
"content": "### How to Get LinkedIn Cookies\n\n**Required Extension:**\n[Install EditThisCookie](https://chromewebstore.google.com/detail/editthiscookie-v3/ojfebgpkimhlhcblbalbfjblapadhbol)\n\n**Steps to Extract Cookies:**\n1. Go to LinkedIn Sales Navigator\n2. Click the cookie icon in your browser toolbar\n3. Click \"Export\" button\n4. Copy the exported cookie data\n5. Paste into the \"cookies\" field in this node\n\nSee reference image for [visual guide](https://drive.google.com/file/d/1yY4xdXjrChAeKGWz3H6lqyp1lJ1ElKWU/view?usp=sharing)\n\n**Cookies authenticate your LinkedIn session (and nothing is saved - not even the data scraping)**"
},
"typeVersion": 1
},
{
"id": "d78e5f9b-2047-4994-83dc-d35d1bd7585e",
"name": "ワークフロー開始",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-1216,
48
],
"parameters": {},
"typeVersion": 1
},
{
"id": "5bdef910-db46-47f9-8e2a-dd2ac16b563f",
"name": "検索パラメータを設定",
"type": "n8n-nodes-base.set",
"position": [
-992,
48
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "ef3bbffa-8a91-4477-b930-b2089fdb5d04",
"name": "cookies",
"type": "array",
"value": "[YOUR_COOKIES_HERE]"
},
{
"id": "26025d17-4e8c-48df-aaa2-60b5bfa0d021",
"name": "url",
"type": "string",
"value": "[YOUR_SALES_NAVIGATOR_SEARCH_URL_HERE]"
},
{
"id": "3fb93134-cc12-4e83-ae2e-387de3c01f74",
"name": "scraper_type",
"type": "string",
"value": "contacts"
},
{
"id": "5bd33944-beb4-4aa0-a617-b25d9759d690",
"name": "start",
"type": "number",
"value": "={{ $input.first()?.json?.start ?? 0 }}"
},
{
"id": "1cfc15c1-6bfb-4ded-bdb8-6076cdd008ef",
"name": "total_pages",
"type": "number",
"value": 2
}
]
}
},
"typeVersion": 3.4
},
{
"id": "ce0fa21f-039e-43dd-9c56-20f3a69b4cae",
"name": "付箋6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2528,
-208
],
"parameters": {
"width": 752,
"height": 816,
"content": "## LinkedIn Sales Navigator to Google Sheets Scraper\n\nThis workflow automatically extracts contact data from LinkedIn Sales Navigator and saves it to Google Sheets.\n\n### What it does:\n- Fetches contacts from Sales Navigator search results via API\n- Handles pagination automatically (25 contacts per page)\n- Extracts: name, title, company, location, profile URL, industry\n- Saves all data to Google Sheets\n- Built-in rate limiting (30-60s delays) prevents API blocks\n\n### Requirements:\n- Self-hosted n8n (won't work on Cloud)\n- LinkedIn Sales Navigator account\n- API access (email creator for 1 month free)\n- EditThisCookie browser extension\n- Google Sheets account\n\n### Quick Setup:\n1. Get API key from creator (see purple sticky note)\n2. Extract LinkedIn cookies (see green sticky note)\n3. Configure \"Set Search Parameters\" node\n4. Make a copy of the Google Sheet template\n5. Connect your Google Sheets in the final node\n6. Run workflow\n\n### Important Notes:\n- Keep cookies private (they're your login session)\n- Don't lower the rate limit delay\n- Each page = ~25 contacts\n- Data is NOT stored anywhere except your Google Sheet\n\nFor detailed setup instructions, see the sticky notes throughout the workflow."
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"d78e5f9b-2047-4994-83dc-d35d1bd7585e": {
"main": [
[
{
"node": "5bdef910-db46-47f9-8e2a-dd2ac16b563f",
"type": "main",
"index": 0
}
]
]
},
"5bdef910-db46-47f9-8e2a-dd2ac16b563f": {
"main": [
[
{
"node": "120b55a2-ed29-4a35-9265-18940cee8b21",
"type": "main",
"index": 0
}
]
]
},
"93f2cf65-a67c-4f8d-9512-6ab51bdfb973": {
"main": [
[
{
"node": "3f8a9eb7-0df9-4464-a3cd-ae2ca5db2d55",
"type": "main",
"index": 0
}
]
]
},
"120b55a2-ed29-4a35-9265-18940cee8b21": {
"main": [
[
{
"node": "93f2cf65-a67c-4f8d-9512-6ab51bdfb973",
"type": "main",
"index": 0
}
]
]
},
"a8d46ea2-2543-4f9d-ab03-07f3b0347a87": {
"main": [
[
{
"node": "e18e663a-f637-4df9-a4fb-c5c9b4b6fcf0",
"type": "main",
"index": 0
}
]
]
},
"e18e663a-f637-4df9-a4fb-c5c9b4b6fcf0": {
"main": [
[
{
"node": "ddf0bf2a-6395-4afe-8e50-dc954a0889af",
"type": "main",
"index": 0
}
]
]
},
"3f8a9eb7-0df9-4464-a3cd-ae2ca5db2d55": {
"main": [
[
{
"node": "a8d46ea2-2543-4f9d-ab03-07f3b0347a87",
"type": "main",
"index": 0
}
]
]
},
"ddf0bf2a-6395-4afe-8e50-dc954a0889af": {
"main": [
[
{
"node": "5bdef910-db46-47f9-8e2a-dd2ac16b563f",
"type": "main",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
中級 - コンテンツ作成, マルチモーダルAI
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
Gemini_NanoBanana_テンプレート
Google SheetsからFal.aiのモデル(nano-banana、WAN2.2、Veo3)でUGC広告生成
If
Set
Code
+
If
Set
Code
36 ノードJaruphat J.
コンテンツ作成
AI駆動型動画制作&Instagram/TikTok/YouTubeへの自動アップロード
クラウドドライブからAI駆動の動画作成およびInstagram、TikTok、YouTubeへのアップロード
If
Set
Code
+
If
Set
Code
53 ノードDevCode Journey
コンテンツ作成
Shopify で注文後に WhatsApp での感謝メッセージ+ロイヤリティクーポン自動送信(Rapiwa API を使用)
Rapiwa を使用してShopifyから自動のにWhatsAppで感謝メッセージとロイヤルティクーポンを送信
If
Code
Wait
+
If
Code
Wait
17 ノードSpaGreen Creative
コンテンツ作成
テンプレートHP - コンテンツスケジュール
GPT-4、Apify、Google Sheetsを使ってInstagramコンテンツの自動スケジュール生成
Set
Code
Wait
+
Set
Code
Wait
24 ノードkeisha kalra
コンテンツ作成
Printifyの自動化 - タイトルと説明を更新 - AlexK1919
GPT-4o-miniによるPrintify向け自動SEO製品タイトル・説明生成
If
Set
Code
+
If
Set
Code
26 ノードAmit Mehta
コンテンツ作成
WooCommerce Nano BananaのAIによるバーチャル試着
WooCommerce向けにFal.ai Nano Bananaを使用して、ビジual AIフィッティング画像を自動生成
If
Set
Wait
+
If
Set
Wait
20 ノードDavide
コンテンツ作成
ワークフロー情報
難易度
中級
ノード数15
カテゴリー2
ノードタイプ8
作成者
Naveen Choudhary
@n8nsteinI create AI-driven n8n workflows that turn repetitive tasks into smooth, hands-off automations. Want to explore an idea? Book a quick consult: https://cal.com/nickchoudhary/30min
外部リンク
n8n.ioで表示 →
このワークフローを共有