RECIPE 055
Shopify 주문 → 배송 상태 자동 업데이트 알림
- ▸Shopify 주문 배송 상태 변경 시 고객 이메일 자동 발송
- ▸배송 단계별(접수/출고/배달완료) 맞춤 메시지 전송
- ▸배송 지연 주문 자동 감지 및 CS팀 알림
✅사전 준비
- □Shopify Admin API 액세스 토큰 발급
- □Shopify 웹훅 등록 (파트너 대시보드 또는 Admin API)
- □Gmail 또는 SMTP 자격증명 설정
- □배송 지연 기준일 설정 (예: 주문 후 3일)
배송 상태별 Switch 분기
Node: Switch
Value: {{ $json.fulfillment_status }}
Case 1: null → '주문 접수' 이메일
Case 2: 'partial' → '부분 출고' 이메일
Case 3: 'fulfilled' → '출고 완료' 이메일
Default: 상태 로그 기록배송 지연 체크 (Cron + HTTP)
// Cron: 매일 오전 9시 실행
// 0 9 * * *
Node: HTTP Request
Method: GET
URL: https://YOUR_SHOP.myshopify.com/admin/api/2024-01/orders.json?status=open&fulfillment_status=unfulfilled&created_at_max={{ $now.minus({days: 3}).toISO() }}
Headers:
X-Shopify-Access-Token: YOUR_ACCESS_TOKEN💡 TIPShopify API 버전은 주기적으로 업데이트됩니다. URL의 `2024-01` 부분을 최신 버전으로 교체하세요. 현재 최신 버전은 Shopify 파트너 대시보드에서 확인할 수 있습니다.
⚡
워크플로우 JSON
아래 JSON을 복사해 n8n에 바로 임포트하세요
📥 n8n 임포트 방법
n8n 화면 우측 상단 메뉴 (⋮) → Import from JSON → 아래 JSON 전체 복사 후 붙여넣기 → Import 클릭
n8n 화면 우측 상단 메뉴 (⋮) → Import from JSON → 아래 JSON 전체 복사 후 붙여넣기 → Import 클릭
{
"recipeId": "recipe055",
"title": "생일·입사 기념일 자동 축하 메시지",
"chapter": 5,
"category": "HR & 조직 운영 자동화",
"difficulty": "⭐",
"estimatedTime": "20분",
"usedApps": [
"Google Sheets",
"Slack"
],
"description": "직원 명단 시트의 생일·입사일을 매일 오전 9시에 확인하여 오늘 해당하는 직원에게 Slack 전체 채널로 자동 축하 메시지를 발송합니다.",
"nodes": [
{
"id": "trigger_schedule",
"type": "trigger",
"service": "Schedule",
"name": "매일 오전 9시 실행",
"config": {
"interval": "daily",
"time": "09:00"
}
},
{
"id": "get_employees",
"type": "action",
"service": "Google Sheets",
"name": "직원 명단 조회",
"config": {
"operation": "readRows",
"spreadsheetId": "{{$env.HR_SHEET_ID}}",
"sheetName": "직원명단",
"columns": [
"이름",
"생일",
"입사일",
"부서",
"슬랙ID"
]
}
},
{
"id": "check_today",
"type": "action",
"service": "Function",
"name": "오늘 생일·기념일 확인",
"config": {
"code": "const today = $now.format('MM-DD');\nconst employees = $items();\n\nconst birthdays = employees.filter(e => {\n const bday = e.json['생일'] ? e.json['생일'].slice(5, 10) : '';\n return bday === today;\n});\n\nconst anniversaries = employees.filter(e => {\n const anniv = e.json['입사일'] ? e.json['입사일'].slice(5, 10) : '';\n return anniv === today && e.json['입사일'].slice(0, 4) !== $now.format('YYYY');\n});\n\nconst results = [\n ...birthdays.map(e => ({ ...e.json, eventType: 'birthday' })),\n ...anniversaries.map(e => ({ \n ...e.json, \n eventType: 'anniversary',\n years: $now.format('YYYY') - e.json['입사일'].slice(0, 4)\n }))\n];\n\nreturn results.map(r => ({ json: r }));"
}
},
{
"id": "check_has_event",
"type": "condition",
"service": "IF",
"name": "이벤트 존재 여부",
"config": {
"condition": "{{$items().length > 0}}"
}
},
{
"id": "send_birthday",
"type": "condition",
"service": "IF",
"name": "생일 vs 기념일 분기",
"config": {
"condition": "{{$json['eventType'] === 'birthday'}}"
}
},
{
"id": "post_birthday_slack",
"type": "action",
"service": "Slack",
"name": "생일 축하 메시지",
"config": {
"operation": "sendMessage",
"channel": "{{$env.GENERAL_SLACK_CHANNEL}}",
"message": "🎂 오늘은 <@{{$json['슬랙ID']}}>님의 생일이에요!\n\n{{$json['이름']}}님, 생일 축하드립니다! 🎉🎁\n오늘 하루도 행복하고 즐거운 날이 되길 바랍니다! 😊"
}
},
{
"id": "post_anniversary_slack",
"type": "action",
"service": "Slack",
"name": "입사 기념일 메시지",
"config": {
"operation": "sendMessage",
"channel": "{{$env.GENERAL_SLACK_CHANNEL}}",
"message": "🏆 오늘은 <@{{$json['슬랙ID']}}>님의 입사 {{$json['years']}}주년 기념일이에요!\n\n{{$json['이름']}}님, {{$json['years']}}년 동안 함께해 주셔서 진심으로 감사합니다! 💪\n앞으로도 함께 성장해요! 🚀"
}
},
{
"id": "no_event",
"type": "noOp",
"name": "오늘 이벤트 없음 — 스킵",
"config": {}
}
],
"edges": [
{
"from": "trigger_schedule",
"to": "get_employees"
},
{
"from": "get_employees",
"to": "check_today"
},
{
"from": "check_today",
"to": "check_has_event"
},
{
"from": "check_has_event",
"to": "send_birthday",
"branch": "true"
},
{
"from": "check_has_event",
"to": "no_event",
"branch": "false"
},
{
"from": "send_birthday",
"to": "post_birthday_slack",
"branch": "true"
},
{
"from": "send_birthday",
"to": "post_anniversary_slack",
"branch": "false"
}
],
"tips": [
"직원 명단 시트에 슬랙 ID를 등록해두면 @멘션이 자동으로 작동해 더욱 생동감 있는 축하 메시지를 만들 수 있어요.",
"입사 기념일에 연차 수당이나 특별 혜택이 있는 경우 HR팀 Slack에도 별도 알림을 추가해 두세요.",
"생일 메시지에 회사 로고나 케이크 이미지를 첨부하면 훨씬 따뜻한 분위기를 연출할 수 있어요."
],
"qrUrl": "www.koreaaitimes.com/books/n8n-vol2/recipe055"
}