데이터베이스에서 Saleshandy로의 사용자 온보딩 자동화
고급
이것은Lead Nurturing분야의자동화 워크플로우로, 16개의 노드를 포함합니다.주로 Code, HttpRequest, GoogleSheets, ManualTrigger 등의 노드를 사용하며. Google Sheets 추적을 통한 데이터베이스에서 Saleshandy로의 사용자 온보딩 자동화
사전 요구사항
- •대상 API의 인증 정보가 필요할 수 있음
- •Google Sheets API 인증 정보
카테고리
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"meta": {
"instanceId": "5f48daf3a0baf541941ac99dac87a58469ec38ada0698ec3f47e71ef7e50b0ff"
},
"nodes": [
{
"id": "9c9c4619-6e83-4a31-b783-c1250540b6ff",
"name": "어제 날짜 가져오기",
"type": "n8n-nodes-base.code",
"position": [
380,
480
],
"parameters": {
"jsCode": "function formatToSupabaseTimestamp(date) {\n const iso = date.toISOString();\n const [datePart, ms = \"000\"] = iso.split('.')[1]?.split('Z') || [\"000\"];\n const paddedMicro = (ms + \"000000\").slice(0, 6);\n return iso.replace(/\\.\\d+Z/, `.${paddedMicro}+00:00`);\n}\n\nconst now = new Date();\n\nconst yesterday = new Date(now);\nyesterday.setDate(now.getDate() - 1);\nyesterday.setHours(0, 0, 0, 0);\n\nconst start = new Date(yesterday);\nconst end = new Date(yesterday);\nend.setHours(23, 59, 59, 999);\n\nreturn [\n {\n json: {\n isoStart: formatToSupabaseTimestamp(start),\n isoEnd: formatToSupabaseTimestamp(end)\n }\n }\n];"
},
"typeVersion": 2
},
{
"id": "381fac0c-25bc-4322-980d-009012378923",
"name": "메모1",
"type": "n8n-nodes-base.stickyNote",
"position": [
660,
320
],
"parameters": {
"width": 360,
"height": 340,
"content": "## Fetch All Users\nThis step fetches all users from your database and filters them based on the selected date range (e.g., yesterday, last 7 days, etc.)."
},
"typeVersion": 1
},
{
"id": "d216b2d6-ae67-451f-923d-5bd07f847b00",
"name": "준자격자 행 추가",
"type": "n8n-nodes-base.googleSheets",
"position": [
1560,
120
],
"parameters": {
"columns": {
"value": {
"ID": "={{ $('Date Filtered Users').item.json.id }}",
"Name ": "={{ $('Date Filtered Users').item.json.first_name }}",
"Email ": "={{ $('Date Filtered Users').item.json.email }}",
"created_at": "={{ $('Date Filtered Users').item.json.created_at}}"
},
"schema": [
{
"id": "ID",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "ID",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Name ",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Name ",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email ",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Email ",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "created_at",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "created_at",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "message",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "message",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "payload",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "payload",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"ID"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ZfV7CLtXKzNtiQcF_9XgHUwyVn467hpYrwFaQ3Hfhmc/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1ZfV7CLtXKzNtiQcF_9XgHUwyVn467hpYrwFaQ3Hfhmc",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ZfV7CLtXKzNtiQcF_9XgHUwyVn467hpYrwFaQ3Hfhmc/edit?usp=drivesdk",
"cachedResultName": "database fetch "
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "RWziWEBHK0Fgyt1r",
"name": "Google Sheets account 5"
}
},
"typeVersion": 4.6
},
{
"id": "dbb1cba5-658e-4065-b8d7-5d7dc0d994aa",
"name": "데이터베이스에서 모든 사용자 가져오기",
"type": "n8n-nodes-base.httpRequest",
"position": [
680,
120
],
"parameters": {
"url": "ADD YOUR DATABASE URL",
"options": {},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "apikey",
"value": "ADD YOUR DATABASE ANON KEY"
},
{
"name": "Authorization",
"value": "ADD YOUR SERVICE ROLE KEY (ADD bearer BEFORE SR KEY)"
}
]
}
},
"typeVersion": 4
},
{
"id": "1281e124-bf06-4dae-a232-2142d566fb20",
"name": "날짜 필터링된 사용자",
"type": "n8n-nodes-base.code",
"position": [
880,
120
],
"parameters": {
"jsCode": "const isoStart = $items(\"Get yesterday dates\")[0].json.isoStart;\nconst isoEnd = $items(\"Get yesterday dates\")[0].json.isoEnd;\n\nreturn items\n .filter(item => {\n const createdAt = new Date(item.json.created_at);\n const start = new Date(isoStart);\n const end = new Date(isoEnd);\n return createdAt >= start && createdAt <= end;\n })\n .map(item => {\n const [first_name, ...rest] = item.json.full_name.split(' ');\n const last_name = rest.join(' ') || '';\n return {\n json: {\n id: item.json.id,\n first_name: first_name,\n last_name: last_name,\n email: item.json.email,\n created_at: item.json.created_at\n }\n };\n });\n"
},
"typeVersion": 2
},
{
"id": "f54a17c0-b64c-4da7-b9d6-4e52768db0a9",
"name": "메모",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
0
],
"parameters": {
"color": 7,
"width": 1820,
"height": 700,
"content": "## **OnboardTrigger: Signup to Saleshandy Sequence**\nAutomatically connects your new application signups from the database to a targeted Saleshandy email sequence. This ensures every new user receives timely, personalized outreach, whether it’s for onboarding, nudging them to purchase a plan, or sharing any custom message. "
},
"typeVersion": 1
},
{
"id": "79afa502-655d-4431-8fca-f32ec7abdb51",
"name": "메모2",
"type": "n8n-nodes-base.stickyNote",
"position": [
20,
280
],
"parameters": {
"height": 320,
"content": "## Trigger this workflow to reach every new signup —> daily.\n\nMake it part of your everyday routine to automatically fetch leads from your app, add them to a Saleshandy sequence, and send timely emails to engage, nurture, and encourage them to become paying customers"
},
"typeVersion": 1
},
{
"id": "266fdde0-d952-4a11-bc7f-8bc52b5845ec",
"name": "매일 트리거",
"type": "n8n-nodes-base.manualTrigger",
"position": [
100,
120
],
"parameters": {},
"typeVersion": 1
},
{
"id": "4b47add8-1967-4769-a355-58b88151d147",
"name": "Saleshandy 시퀀스에 새 가입자 추가",
"type": "n8n-nodes-base.httpRequest",
"position": [
1200,
520
],
"parameters": {
"url": "https://open-api.saleshandy.com/v1/sequences/prospects/import-with-field-name",
"method": "POST",
"options": {},
"jsonBody": "={\n \"prospectList\": [\n {\n \"First Name\": \"{{ $json['first_name']}}\",\n \"Email\": \"{{ $json['email']}}\"\n }\n ],\n \"stepId\": \"ADD YOUR SALESHANDY SEQUENCE ID\",\n \"verifyProspects\": false,\n \"conflictAction\": \"overwrite\"\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "x-api-key",
"value": "ADD YOUR SALESHANDY API KEY"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "dae2032f-b0f1-4d41-ad01-d01748e12fad",
"name": "메모3",
"type": "n8n-nodes-base.stickyNote",
"position": [
320,
120
],
"parameters": {
"height": 200,
"content": "## Date Generator\nGenerates **yesterday’s date** for filtering signups in the next steps.\n\n**Note:** You can update this to any range; day, week, or month, as needed."
},
"typeVersion": 1
},
{
"id": "06b5b4d0-a5cb-4fd8-84b2-5462a91d70bd",
"name": "메모5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1100,
100
],
"parameters": {
"width": 320,
"height": 400,
"content": "## Connect to Saleshandy's Sequence \nThis step connects to your Saleshandy sequence, allowing you to automatically send customized emails to your new users as part of your outreach flow."
},
"typeVersion": 1
},
{
"id": "76700793-0958-495d-8d6d-d4d2b98bd976",
"name": "메모4",
"type": "n8n-nodes-base.stickyNote",
"position": [
680,
440
],
"parameters": {
"color": 3,
"width": 320,
"height": 200,
"content": "## What you need to update:\nMake sure to update the node with your actual:\n**Database URL**\n**Public Anon Key**\n**Service Role Key**\nThese are required to authenticate and query your database correctly."
},
"typeVersion": 1
},
{
"id": "a10100f0-5c60-4320-bcb7-b07dfd7fb153",
"name": "메모6",
"type": "n8n-nodes-base.stickyNote",
"position": [
340,
340
],
"parameters": {
"color": 3,
"width": 180,
"height": 80,
"content": "by default Yesterday's date is set"
},
"typeVersion": 1
},
{
"id": "c7b44a55-ec88-4ba3-94b5-dcbd5be785ba",
"name": "메모7",
"type": "n8n-nodes-base.stickyNote",
"position": [
1120,
280
],
"parameters": {
"color": 3,
"width": 280,
"height": 200,
"content": "## What you need to update:\nAdd the following values to this node for it to work correctly:\n**Saleshandy API Key**\n**Your Sequence ID** (retrieved from your Saleshandy sequence)"
},
"typeVersion": 1
},
{
"id": "a7dec1af-92fb-4a1b-8576-8fedb3fe5fdf",
"name": "메모8",
"type": "n8n-nodes-base.stickyNote",
"position": [
1480,
300
],
"parameters": {
"width": 320,
"height": 340,
"content": "## Append to Google Sheets\nThis step appends your latest user data to a selected Google Sheet for tracking, analysis, or backup."
},
"typeVersion": 1
},
{
"id": "21032964-c416-4a79-8169-b1ae8a437b51",
"name": "메모9",
"type": "n8n-nodes-base.stickyNote",
"position": [
1500,
420
],
"parameters": {
"color": 3,
"width": 280,
"height": 200,
"content": "## What you need to update:\nConnect your Google Sheets account\n**Select the target sheet**\nEnsure the sheet has the following columns:\n**ID, Name, Email, Created_at**"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"266fdde0-d952-4a11-bc7f-8bc52b5845ec": {
"main": [
[
{
"node": "9c9c4619-6e83-4a31-b783-c1250540b6ff",
"type": "main",
"index": 0
}
]
]
},
"1281e124-bf06-4dae-a232-2142d566fb20": {
"main": [
[
{
"node": "4b47add8-1967-4769-a355-58b88151d147",
"type": "main",
"index": 0
}
]
]
},
"9c9c4619-6e83-4a31-b783-c1250540b6ff": {
"main": [
[
{
"node": "dbb1cba5-658e-4065-b8d7-5d7dc0d994aa",
"type": "main",
"index": 0
}
]
]
},
"dbb1cba5-658e-4065-b8d7-5d7dc0d994aa": {
"main": [
[
{
"node": "1281e124-bf06-4dae-a232-2142d566fb20",
"type": "main",
"index": 0
}
]
]
},
"4b47add8-1967-4769-a355-58b88151d147": {
"main": [
[
{
"node": "d216b2d6-ae67-451f-923d-5bd07f847b00",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 리드 육성
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
재순위 #1
웹 스크래핑, GPT-4o, WhatsApp을 통한 텔레마케팅 자동화
Set
Code
Webhook
+
Set
Code
Webhook
48 노드Khaisa Studio
리드 육성
재정렬 #1
Apify, GPT-4o 및 WhatsApp을 사용한 영업 콜드 콜 파이프라인 자동화
Set
Code
Webhook
+
Set
Code
Webhook
48 노드Khairul Muhtadin
리드 육성
Intercom 대화 리뷰
Intercom, GPT 및 Google Sheets를 사용한 지원 품질 평가 자동화
If
Code
Merge
+
If
Code
Merge
22 노드Saleshandy
티켓 관리
B2B 외부 연결 자동화: LinkedIn에서 이메일 시리즈로
B2B 외부 연결 자동화: GPT, AnyMailFinder, Perplexity를 사용하여 LinkedIn에서 이메일 시리즈로 이동합니다.
If
Set
Code
+
If
Set
Code
25 노드LukaszB
리드 육성
저의 콜드 이메일 생성기
Anthropic, GPT-4, 구글 스프레드시트를 사용하여 개인화된 콜드 이메일을 생성
If
Set
Code
+
If
Set
Code
24 노드Bhuvanesh R
리드 육성
AI 기반 음식 주문 처리 시스템, Facebook Messenger, Google 스프레드시트 및 캘린더 통합
AI 기반 음식 주문 처리 시스템, Facebook Messenger, Google 스프레드시트 및 캘린더 통합
If
Code
Webhook
+
If
Code
Webhook
26 노드Hans Wilhelm Radam
리드 육성