자동 페이지 분할을 사용하여 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_템플릿
Fal.ai 모델(nano-banana, WAN2.2, Veo3)을 사용하여 Google Sheets에서 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 가상 피팅
Fal.ai Nano Banana를 사용하여 WooCommerce용 가상 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에서 보기 →
이 워크플로우 공유