RECIPE 009
업무 종료 자동 리포트 → 구글 시트 기록
- ▸Airtable Trigger로 레코드 생성/수정 이벤트를 감지할 수 있다
- ▸변경된 필드만 추출해 의미 있는 알림 메시지를 만들 수 있다
- ▸Slack으로 팀에 변경 내용을 자동 공유할 수 있다
✅사전 준비
- □Airtable Personal Access Token 발급 및 자격증명 등록
- □Slack 자격증명 연결 완료
- □알림 받을 Airtable Base ID, Table ID 확인
Airtable Trigger 설정값
Event: Record Created / Record Updated (필요에 따라 선택)
Base ID: appXXXXXXXXXXXXXX (Airtable URL에서 확인)
Table ID: tblXXXXXXXXXXXXXXSlack 알림 메시지 — 변경 내용 포함
📋 Airtable 레코드가 변경되었습니다
테이블: {{ $json.tableName }}
레코드: *{{ $json.fields["이름"] ?? $json.fields["Name"] ?? "이름 없음" }}*
변경일시: {{ $now.toFormat("yyyy-MM-dd HH:mm") }}
🔗 바로가기: https://airtable.com/{{ $json.baseId }}/{{ $json.tableId }}/{{ $json.id }}💡 TIPAirtable Trigger가 없는 n8n 버전이라면 Schedule Trigger + Airtable List Records 노드 조합으로 동일하게 구현할 수 있어요.
⚡
워크플로우 JSON
아래 JSON을 복사해 n8n에 바로 임포트하세요
📥 n8n 임포트 방법
n8n 화면 우측 상단 메뉴 (⋮) → Import from JSON → 아래 JSON 전체 복사 후 붙여넣기 → Import 클릭
n8n 화면 우측 상단 메뉴 (⋮) → Import from JSON → 아래 JSON 전체 복사 후 붙여넣기 → Import 클릭
{
"name": "recipe009_daily_report_sheet_record",
"nodes": [
{
"parameters": {
"triggerOn": "message",
"channelId": {
"__rl": true,
"mode": "name",
"value": "daily-report"
},
"options": {}
},
"id": "slack-trig-009-01",
"name": "Slack 일일 보고 채널 감지",
"type": "n8n-nodes-base.slackTrigger",
"typeVersion": 1.1,
"position": [
200,
400
]
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": false,
"leftValue": "",
"typeValidation": "strict"
},
"conditions": [
{
"id": "cond-not-bot",
"leftValue": "={{ $json.bot_id }}",
"rightValue": "",
"operator": {
"type": "string",
"operation": "equals"
}
}
],
"combinator": "and"
}
},
"id": "if-009-02",
"name": "봇 메시지 제외",
"type": "n8n-nodes-base.if",
"typeVersion": 2,
"position": [
420,
400
]
},
{
"parameters": {
"resource": "sheet",
"operation": "appendOrUpdate",
"documentId": {
"__rl": true,
"mode": "id",
"value": "={{ $env.DAILY_REPORT_SHEET_ID }}"
},
"sheetName": {
"__rl": true,
"mode": "name",
"value": "일일보고"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"날짜": "={{ $now.format('yyyy-MM-dd') }}",
"시간": "={{ $now.format('HH:mm') }}",
"작성자": "={{ $json.user }}",
"내용": "={{ $json.text }}"
}
},
"options": {}
},
"id": "sheets-009-03",
"name": "구글 시트에 보고 기록",
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.5,
"position": [
640,
300
]
},
{
"parameters": {
"resource": "reaction",
"operation": "add",
"channel": "={{ $json.channel }}",
"timestamp": "={{ $json.ts }}",
"name": "white_check_mark"
},
"id": "slack-009-04",
"name": "기록 완료 이모지 반응",
"type": "n8n-nodes-base.slack",
"typeVersion": 2.2,
"position": [
860,
300
]
}
],
"connections": {
"Slack 일일 보고 채널 감지": {
"main": [
[
{
"node": "봇 메시지 제외",
"type": "main",
"index": 0
}
]
]
},
"봇 메시지 제외": {
"main": [
[
{
"node": "구글 시트에 보고 기록",
"type": "main",
"index": 0
}
]
]
},
"구글 시트에 보고 기록": {
"main": [
[
{
"node": "기록 완료 이모지 반응",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"timezone": "Asia/Seoul"
},
"meta": {
"chapter": 1,
"recipe": "009",
"title": "업무 종료 자동 리포트 → 구글 시트 기록",
"difficulty": "⭐⭐",
"estimatedTime": "30분",
"apps": [
"Slack",
"Google Sheets"
],
"workflowUrl": "www.koreaaitimes.com/books/n8n-vol2/recipe009"
}
}