Apify를 사용한 Apollo 리드 스크래핑 및 이메일 강화 후 Airtable CRM 연동
고급
이것은Content Creation, Multimodal AI분야의자동화 워크플로우로, 18개의 노드를 포함합니다.주로 If, Set, Filter, Airtable, HttpRequest 등의 노드를 사용하며. Apify를 사용한 Apollo 잠재 고객 스크래핑 및 이메일 강화 후 Airtable CRM 입력 자동화
사전 요구사항
- •Airtable API Key
- •대상 API의 인증 정보가 필요할 수 있음
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"meta": {
"instanceId": "3d7eb9567ae690bf8c9bba1cb43396e6e40c18e15eb5889cf9673ed1713da6db",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "04b2ce2b-b253-4b8d-a525-7db0fab14c14",
"name": "메모지",
"type": "n8n-nodes-base.stickyNote",
"position": [
2192,
368
],
"parameters": {
"color": 4,
"width": 800,
"height": 1152,
"content": "# Apollo Lead Scraper to Airtable CRM\n\n## 📋 What This Template Does\nThis workflow scrapes leads from Apollo.io search URLs via Apify, enriches with emails and LinkedIn data, removes duplicates, and syncs to Airtable—separating contacts with/without emails for streamlined CRM outreach.\n\n## 🔧 Prerequisites\n- n8n instance (cloud or self-hosted)\n- Apollo.io account with search URLs\n- Airtable base with \"URLs\" table (for input) and two contact tables (\"with Email\" and \"without Email\")\n\n## 🔑 Required Credentials\n\n### Airtable OAuth2 API Setup\n1. Go to Airtable Builder Hub > OAuth integrations\n2. Register new integration, paste n8n redirect URL\n3. Copy Client ID/Secret to n8n credential\n4. Select scopes: data.records:read, data.records:write, schema.bases:read\n5. Connect account and grant base access\n\n### Apify API Setup\n1. Log in to Apify Console > Settings > Integrations\n2. Copy API token\n3. Add to n8n as Apify API credential\n\n## ⚙️ Configuration Steps\n1. Import workflow JSON into n8n\n2. Assign credentials to nodes\n3. Set Airtable base/tables in \"Get URL\" and create nodes\n4. Add Apollo search URL to \"URLs\" table\n5. Activate workflow\n\n## 🎯 Use Cases\n- Enrich sales pipelines with B2B leads for targeted emails\n- Automate agency prospecting from Apollo filters\n- Source tech job candidates via title/location searches\n- Build educational datasets for marketing analysis\n\n## ⚠️ Troubleshooting\n- No leads: Validate Apollo URL (must be people search); check Apify logs\n- Airtable errors: Re-grant scopes; test node output solo\n- Duplicates: Adjust \"Remove Duplicates\" keys (e.g., email+name)\n- Timeout: Reduce totalRecords to 500; monitor Apify memory"
},
"typeVersion": 1
},
{
"id": "2c866dd8-9c17-4205-9b00-cfb2bdcc78cb",
"name": "중복 제거",
"type": "n8n-nodes-base.removeDuplicates",
"position": [
3856,
880
],
"parameters": {
"options": {}
},
"typeVersion": 2
},
{
"id": "9881dcf9-3eea-4cad-a028-3a5e65b79973",
"name": "필드 편집",
"type": "n8n-nodes-base.set",
"position": [
3648,
880
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "cec86722-ebb6-4e66-8076-3078d19314c5",
"name": "first_name",
"type": "string",
"value": "={{ $json.first_name }}"
},
{
"id": "289d1412-0129-4e14-ac2a-caf3e20807fc",
"name": "last_name",
"type": "string",
"value": "={{ $json.last_name }}"
},
{
"id": "7bb8e1ba-7bf7-4ecc-858a-6f0048bc3fd5",
"name": "name",
"type": "string",
"value": "={{ $json.name }}"
},
{
"id": "d1bf4ca9-d621-475b-8511-484b48c0a219",
"name": "linkedin_url",
"type": "string",
"value": "={{ $json.linkedin_url }}"
},
{
"id": "f21e166a-f5b9-497d-b065-3f8152ca470e",
"name": "Job Title",
"type": "string",
"value": "={{ $json.title }}"
},
{
"id": "d0527179-f2e4-4469-99fc-cbff7c311719",
"name": "Company Name",
"type": "string",
"value": "={{ $json.organization.name }}"
},
{
"id": "38ad7852-ce76-4bbd-ad24-dfba76c36c96",
"name": "Website",
"type": "string",
"value": "={{ $json.organization.website_url }}"
},
{
"id": "37e79050-b899-440a-81c4-71329cab03a9",
"name": "Company Linkedin",
"type": "string",
"value": "={{ $json.organization.linkedin_url }}"
},
{
"id": "9118f706-5968-4254-b622-ab05e284a496",
"name": "personal_email",
"type": "string",
"value": "={{ $json.personal_email }}"
},
{
"id": "92ca2d2e-3472-4bc7-a100-960f8d231672",
"name": "Twitter_url",
"type": "string",
"value": "={{ $json.organization.twitter_url }}"
},
{
"id": "da5997af-51ab-42d2-b099-d7bb6c96e042",
"name": "email_status",
"type": "string",
"value": "={{ $json.email_status }}"
},
{
"id": "d34208f3-376e-430b-aed2-0b3a148fc99a",
"name": "email",
"type": "string",
"value": "={{ $json.email }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "3d1aec0f-43b2-4a73-8b2b-81a7e7b6b434",
"name": "조건문",
"type": "n8n-nodes-base.if",
"position": [
4208,
880
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "256f5a57-5888-46cf-bdbc-349f1530a12a",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.email }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "6318a6c1-6722-43f2-9be9-e68669d46c6b",
"name": "필터",
"type": "n8n-nodes-base.filter",
"position": [
4032,
880
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "80ac38d7-efb8-493e-8bb1-c29fc0e4230f",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.Website }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "688fa91c-7dad-4e8c-b255-ba70c34bb7a4",
"name": "이메일 없음",
"type": "n8n-nodes-base.airtable",
"position": [
4752,
1056
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "appPoArs9A5xoSu8J",
"cachedResultUrl": "https://airtable.com/appPoArs9A5xoSu8J",
"cachedResultName": " Real Estate CTO and IT Managers"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblZQtU89lJh1pEgJ",
"cachedResultUrl": "https://airtable.com/appYA3nSxuyo96kUQ/tblZQtU89lJh1pEgJ",
"cachedResultName": "Contacts without emails"
},
"columns": {
"value": {
"Email": "={{ $json.personal_email }}",
"Company": "={{ $json['Company Name'] }}",
"Website": "={{ $json.Website }}",
"Full Name": "={{ $json.name }}",
"Job Title": "={{ $json['Job Title'] }}",
"Last Name": "={{ $json.last_name }}",
"First Name": "={{ $json.first_name }}",
"Email Status": "={{ $json.email_status }}",
"Business LinkedIn URL": "={{ $json['Company Linkedin'] }}",
"Personal LinkedIn URL": "={{ $json.linkedin_url }}"
},
"schema": [
{
"id": "Job Title",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Job Title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Company",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Website",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Website",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "First Name",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "First Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Last Name",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Last Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Full Name",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Full Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Personal LinkedIn URL",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Personal LinkedIn URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Business LinkedIn URL",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Business LinkedIn URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company Description",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Company Description",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email Status",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Email Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Icebreaker",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Icebreaker",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Full Name 2",
"type": "string",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "Full Name 2",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email Domain",
"type": "string",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "Email Domain",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "LinkedIn Profile Completeness",
"type": "string",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "LinkedIn Profile Completeness",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email Verification Status",
"type": "string",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "Email Verification Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Icebreaker Summary",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Icebreaker Summary",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company Research",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Company Research",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "create",
"authentication": "airtableOAuth2Api"
},
"credentials": {
"airtableOAuth2Api": {
"id": "GuBb4Si6MfwxQ3Lw",
"name": "Airtable account"
}
},
"typeVersion": 2.1
},
{
"id": "32e9cdea-1ba4-44a3-89f8-b8ac41b6084f",
"name": "이메일 있음",
"type": "n8n-nodes-base.airtable",
"position": [
4480,
736
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "appPoArs9A5xoSu8J",
"cachedResultUrl": "https://airtable.com/appPoArs9A5xoSu8J",
"cachedResultName": " Real Estate CTO and IT Managers"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblvsXssh4qaMJFHE",
"cachedResultUrl": "https://airtable.com/appqJ7MvqoejsJ6m3/tblvsXssh4qaMJFHE",
"cachedResultName": "Contacts with email"
},
"columns": {
"value": {
"Email": "={{ $ifEmpty($json.personal_email, $json.email) }}",
"Company": "={{ $json['Company Name'] }}",
"Website": "={{ $json.Website }}",
"Full Name": "={{ $json.name }}",
"Job Title": "={{ $json['Job Title'] }}",
"Last Name": "={{ $json.last_name }}",
"First Name": "={{ $json.first_name }}",
"Email Status": "={{ $json.email_status }}",
"Business LinkedIn URL": "={{ $json['Company Linkedin'] }}",
"Personal LinkedIn URL": "={{ $json.linkedin_url }}"
},
"schema": [
{
"id": "Job Title",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Job Title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Company",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Website",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Website",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "First Name",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "First Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Last Name",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Last Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Full Name",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Full Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Personal LinkedIn URL",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Personal LinkedIn URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Business LinkedIn URL",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Business LinkedIn URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email Domain",
"type": "string",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "Email Domain",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email Status",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Email Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Icebreaker",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Icebreaker",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company Research",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Company Research",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Contacted",
"type": "boolean",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Contacted",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Loom Outreach Written",
"type": "boolean",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Loom Outreach Written",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "create",
"authentication": "airtableOAuth2Api"
},
"credentials": {
"airtableOAuth2Api": {
"id": "GuBb4Si6MfwxQ3Lw",
"name": "Airtable account"
}
},
"typeVersion": 2.1
},
{
"id": "3ee8c096-d969-47e1-b0aa-530cf9a14e0a",
"name": "조건문",
"type": "n8n-nodes-base.if",
"position": [
4480,
976
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "73fba714-66db-47df-9ef4-0d39c8463562",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.personal_email }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "8a4ad51c-0369-409e-b48d-5ce46fbfb26a",
"name": "개인 이메일 있음",
"type": "n8n-nodes-base.airtable",
"position": [
4752,
864
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "appPoArs9A5xoSu8J",
"cachedResultUrl": "https://airtable.com/appPoArs9A5xoSu8J",
"cachedResultName": " Real Estate CTO and IT Managers"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblvsXssh4qaMJFHE",
"cachedResultUrl": "https://airtable.com/appPoArs9A5xoSu8J/tblvsXssh4qaMJFHE",
"cachedResultName": "Contacts with email"
},
"columns": {
"value": {
"Email": "={{ $ifEmpty($json.personal_email, $json.email) }}",
"Company": "={{ $json['Company Name'] }}",
"Website": "={{ $json.Website }}",
"Full Name": "={{ $json.name }}",
"Job Title": "={{ $json['Job Title'] }}",
"Last Name": "={{ $json.last_name }}",
"First Name": "={{ $json.first_name }}",
"Email Status": "={{ $json.email_status }}",
"Business LinkedIn URL": "={{ $json['Company Linkedin'] }}",
"Personal LinkedIn URL": "={{ $json.linkedin_url }}"
},
"schema": [
{
"id": "Job Title",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Job Title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Company",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Website",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Website",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "First Name",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "First Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Last Name",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Last Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Full Name",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Full Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Personal LinkedIn URL",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Personal LinkedIn URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Business LinkedIn URL",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Business LinkedIn URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email Domain",
"type": "string",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "Email Domain",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email Status",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Email Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Icebreaker",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Icebreaker",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Company Research",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Company Research",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Contacted",
"type": "boolean",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Contacted",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Loom Outreach Written",
"type": "boolean",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Loom Outreach Written",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "create",
"authentication": "airtableOAuth2Api"
},
"credentials": {
"airtableOAuth2Api": {
"id": "GuBb4Si6MfwxQ3Lw",
"name": "Airtable account"
}
},
"typeVersion": 2.1
},
{
"id": "120f0da5-adff-48db-948c-92315ec724fe",
"name": "URL 가져오기",
"type": "n8n-nodes-base.airtable",
"position": [
3280,
880
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "appPoArs9A5xoSu8J",
"cachedResultUrl": "https://airtable.com/appPoArs9A5xoSu8J",
"cachedResultName": " Real Estate CTO and IT Managers"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tbllvioJG4oLzRvxJ",
"cachedResultUrl": "https://airtable.com/appPoArs9A5xoSu8J/tbllvioJG4oLzRvxJ",
"cachedResultName": "Apollo URL"
},
"options": {},
"operation": "search",
"authentication": "airtableOAuth2Api"
},
"credentials": {
"airtableOAuth2Api": {
"id": "GuBb4Si6MfwxQ3Lw",
"name": "Airtable account"
}
},
"typeVersion": 2.1
},
{
"id": "babc3cbd-6d4e-42e8-94e4-c5ada67c1983",
"name": "시작",
"type": "n8n-nodes-base.manualTrigger",
"position": [
3088,
880
],
"parameters": {},
"typeVersion": 1
},
{
"id": "85227b65-b0af-4661-887e-d55cc3bc2bfc",
"name": "참고: URL 가져오기",
"type": "n8n-nodes-base.stickyNote",
"position": [
3088,
576
],
"parameters": {
"color": 2,
"width": 392,
"height": 288,
"content": "## 📥 Get URL\n\n**Purpose:** Fetches Apollo search URL from Airtable.\n\n**Key Settings:**\n- Base: Your Airtable base ID.\n- Table: \"Apollo URL\" or equivalent.\n- Operation: Search (list all records).\n\n**Note:** Ensure table has a \"URL\" field with valid Apollo people search links."
},
"typeVersion": 1
},
{
"id": "933ce7fc-90d1-453a-902b-49c16ac80047",
"name": "참고: 리드 스크래핑",
"type": "n8n-nodes-base.stickyNote",
"position": [
3344,
1056
],
"parameters": {
"color": 3,
"width": 376,
"height": 288,
"content": "## 🔍 Scrape Leads\n\n**Purpose:** Runs Apify actor to scrape leads from Apollo URL.\n\n**Key Settings:**\n- Actor: Apollo Scraper.\n- Custom Body: Enable personal/work emails, set totalRecords (e.g., 1200).\n- Memory: 4096 MB for larger scrapes.\n\n**Note:** Validate URL is a people search; monitor Apify usage limits."
},
"typeVersion": 1
},
{
"id": "3c3dfb52-0094-4701-bd73-6c3aa16a3ab0",
"name": "참고: 필드 편집",
"type": "n8n-nodes-base.stickyNote",
"position": [
3760,
576
],
"parameters": {
"color": 5,
"width": 408,
"height": 256,
"content": "## ✏️ Node: Edit Fields\n\n**Purpose:** Maps and renames scraped data fields for Airtable.\n\n**Key Settings:**\n- Assignments: Map fields like name, email, company details.\n\n**Note:** Handles nested organization data; adjust if Apollo output changes."
},
"typeVersion": 1
},
{
"id": "27e73c0b-a557-4fa7-aec8-aaeae38d369c",
"name": "참고: 중복 제거 및 필터",
"type": "n8n-nodes-base.stickyNote",
"position": [
3904,
1072
],
"parameters": {
"color": 6,
"width": 376,
"height": 280,
"content": "## Remove Duplicates & Filter\n\n**Purpose:** Deduplicates leads and filters those with websites.\n\n**Key Settings:**\n- Remove Duplicates: Default options (compares all fields).\n- Filter: Website exists.\n\n**Note:** Customize duplicate keys (e.g., email + name) in troubleshooting."
},
"typeVersion": 1
},
{
"id": "5f43c706-b189-4331-b882-076221118801",
"name": "참고: 조건",
"type": "n8n-nodes-base.stickyNote",
"position": [
4432,
1168
],
"parameters": {
"color": 7,
"width": 376,
"height": 280,
"content": "## 🔀 Nodes: If & IF\n\n**Purpose:** Branches based on email presence (work/personal).\n\n**Key Settings:**\n- Conditions: Check if email or personal_email exists.\n\n**Note:** Routes to appropriate Airtable tables; ensures no null emails in \"with Email\" table."
},
"typeVersion": 1
},
{
"id": "86d2131e-5cf7-4c2d-b58d-5e5367bd4d49",
"name": "참고: Airtable 생성",
"type": "n8n-nodes-base.stickyNote",
"position": [
4688,
560
],
"parameters": {
"color": 8,
"width": 456,
"height": 272,
"content": "## 📤 Email Present, Personal email present, Email Absent\n\n**Purpose:** Creates records in Airtable tables based on email availability.\n\n**Key Settings:**\n- Operation: Create.\n- Columns: Mapped fields; use $ifEmpty for email fallback.\n\n**Note:** Update base/table IDs; re-auth if permission errors."
},
"typeVersion": 1
},
{
"id": "fb8abd64-afd7-4273-a024-9ce48b60dea0",
"name": "Apollo Scraper",
"type": "n8n-nodes-base.httpRequest",
"position": [
3456,
880
],
"parameters": {
"url": "=https://api.apify.com/v2/acts/jljBwyyQakqrL1wae/run-sync-get-dataset-items",
"method": "POST",
"options": {
"timeout": 1000000,
"redirect": {
"redirect": {}
}
},
"jsonBody": "={\n \"getPersonalEmails\": true,\n \"getWorkEmails\": true,\n \"totalRecords\": 1100,\n \"url\": \"{{ $json.URL }}\"\n}",
"sendBody": true,
"sendQuery": true,
"sendHeaders": true,
"specifyBody": "json",
"queryParameters": {
"parameters": [
{
"name": "timeout",
"value": "600000"
},
{
"name": "memory",
"value": "32768"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "Accept",
"value": "application/json"
},
{
"name": "Authorization",
"value": "=Bearer <ApiKey>"
}
]
}
},
"typeVersion": 4.2
}
],
"pinData": {},
"connections": {
"3ee8c096-d969-47e1-b0aa-530cf9a14e0a": {
"main": [
[
{
"node": "32e9cdea-1ba4-44a3-89f8-b8ac41b6084f",
"type": "main",
"index": 0
}
],
[
{
"node": "3ee8c096-d969-47e1-b0aa-530cf9a14e0a",
"type": "main",
"index": 0
}
]
]
},
"babc3cbd-6d4e-42e8-94e4-c5ada67c1983": {
"main": [
[
{
"node": "120f0da5-adff-48db-948c-92315ec724fe",
"type": "main",
"index": 0
}
]
]
},
"6318a6c1-6722-43f2-9be9-e68669d46c6b": {
"main": [
[
{
"node": "3ee8c096-d969-47e1-b0aa-530cf9a14e0a",
"type": "main",
"index": 0
}
]
]
},
"120f0da5-adff-48db-948c-92315ec724fe": {
"main": [
[
{
"node": "fb8abd64-afd7-4273-a024-9ce48b60dea0",
"type": "main",
"index": 0
}
]
]
},
"9881dcf9-3eea-4cad-a028-3a5e65b79973": {
"main": [
[
{
"node": "2c866dd8-9c17-4205-9b00-cfb2bdcc78cb",
"type": "main",
"index": 0
}
]
]
},
"fb8abd64-afd7-4273-a024-9ce48b60dea0": {
"main": [
[
{
"node": "9881dcf9-3eea-4cad-a028-3a5e65b79973",
"type": "main",
"index": 0
}
]
]
},
"2c866dd8-9c17-4205-9b00-cfb2bdcc78cb": {
"main": [
[
{
"node": "6318a6c1-6722-43f2-9be9-e68669d46c6b",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 콘텐츠 제작, 멀티모달 AI
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
LinkedIn 및 X 바이럴 콘텐츠 자동 엔진
사용AI생성및게시자동생성LinkedIn및X의病毒콘텐츠
If
Set
Wait
+
If
Set
Wait
156 노드Diptamoy Barman
콘텐츠 제작
콘텐츠생성기 v3
AI驱动블로그자동화:사용GPT-4생성并게시SEO기사至WordPress및Twitter
If
Set
Code
+
If
Set
Code
144 노드Jay Emp0
콘텐츠 제작
실시간 - Gemini 및 Creatomate를 사용한 바이럴 AI 동영상 제작 및 게시 자동화
Gemini와 Creatomate를 사용한 AI 비디오 제작 및 다중 플랫폼 게시 자동화
Set
Code
Wait
+
Set
Code
Wait
47 노드Intuz
콘텐츠 제작
Google Maps 데이터 추출
Perplexity AI 및 이메일 검증을 통한 Google Maps 잠재고객 생성 자동화
If
Set
Code
+
If
Set
Code
18 노드Antxon Pous
콘텐츠 제작
콘텐츠 집계
Gemini AI로 웹사이트 글에서 소셜 미디어 게시물 자동 생성 및 LinkedIn 및 X/Twitter에 게시
If
Set
Xml
+
If
Set
Xml
34 노드Vadim
콘텐츠 제작
Supadata, Claude Sonnet 4, WordPress를 사용하여 YouTube 비디오를 SEO 기사로 변환합니다.
Supadata, Claude Sonnet 4, WordPress를 사용하여 YouTube 비디오를 SEO 기사로 변환합니다.
Set
Code
Wait
+
Set
Code
Wait
22 노드Pavlo Hurhu
콘텐츠 제작
워크플로우 정보
난이도
고급
노드 수18
카테고리2
노드 유형8
저자
Daniel
@daniel-automatesAI Automation Consultant | Helping Business Owners Implement AI Systems for growth and lead gen
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유