Clockify 백업 템플릿
고급
이것은Other, HR분야의자동화 워크플로우로, 21개의 노드를 포함합니다.주로 If, Set, Filter, Github, Clockify 등의 노드를 사용하며. 월간 보고서를 기반으로 Clockify 백업을 Github에 저장합니다.
사전 요구사항
- •GitHub Personal Access Token
- •대상 API의 인증 정보가 필요할 수 있음
사용된 노드 (21)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "k22TSNIZXHaQ9rGr",
"meta": {
"instanceId": "fb8bc2e315f7f03c97140b30aa454a27bc7883a19000fa1da6e6b571bf56ad6d",
"templateCredsSetupCompleted": true
},
"name": "Clockify Backup Template",
"tags": [
{
"id": "RKga6I6NviNI12bx",
"name": "template",
"createdAt": "2024-09-19T19:09:21.997Z",
"updatedAt": "2024-09-19T19:09:21.997Z"
}
],
"nodes": [
{
"id": "24115363-9a03-4f8a-aa6e-2a9d4247f035",
"name": "파일에서 추출",
"type": "n8n-nodes-base.extractFromFile",
"position": [
660,
400
],
"parameters": {
"options": {},
"operation": "fromJson"
},
"typeVersion": 1
},
{
"id": "11aa4b51-98f9-4df8-b2d2-6757fe686894",
"name": "데이터셋 비교",
"type": "n8n-nodes-base.compareDatasets",
"position": [
880,
280
],
"parameters": {
"options": {},
"mergeByFields": {
"values": [
{
"field1": "data",
"field2": "data"
}
]
}
},
"typeVersion": 2.3
},
{
"id": "831ad368-6a46-4dd4-bb6c-8ea46200cdf0",
"name": "중단 및 오류",
"type": "n8n-nodes-base.stopAndError",
"position": [
880,
700
],
"parameters": {
"errorMessage": "={{ $json.error }}"
},
"typeVersion": 1
},
{
"id": "2f838fc8-96bf-4111-aaba-743e0c88b688",
"name": "글로벌 변수",
"type": "n8n-nodes-base.set",
"position": [
-660,
480
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "6bd5904d-0218-4075-a767-d4b659def9b0",
"name": "workspace_id",
"type": "string",
"value": "={{ $json.id }}"
},
{
"id": "63fa6231-6c5b-414f-b813-18f7dd5c33e9",
"name": "github_repo.owner",
"type": "string",
"value": ""
},
{
"id": "be2530d7-b2b5-41c5-af19-ab8d27f18e2e",
"name": "github_repo.name",
"type": "string",
"value": ""
}
]
}
},
"typeVersion": 3.4
},
{
"id": "bea9590e-355e-410a-bc4b-ae777efb9f15",
"name": "월 인덱스 설정",
"type": "n8n-nodes-base.set",
"position": [
-440,
480
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "ad278249-5320-4ffa-8d75-e47194c83e58",
"name": "monthIndex",
"type": "array",
"value": "=[0, 1, 2]"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "f541d535-80d9-439d-8543-9c3cb156a5ff",
"name": "인덱스 분할",
"type": "n8n-nodes-base.splitOut",
"position": [
-220,
480
],
"parameters": {
"options": {},
"fieldToSplitOut": "monthIndex"
},
"typeVersion": 1
},
{
"id": "76c74727-d338-4a61-9bf2-e97893721995",
"name": "간격 설정",
"type": "n8n-nodes-base.set",
"position": [
0,
480
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "7f5ff2ee-b93c-4121-b3dc-ce592513db88",
"name": "reportName",
"type": "string",
"value": "=detailed_report_{{ $now.minus($json.monthIndex, 'month').format('yyyy-MM') }}"
},
{
"id": "ea571bdb-8f51-4852-9fda-55ff1a929d1f",
"name": "startDate",
"type": "string",
"value": "={{ $now.minus($json.monthIndex, 'month').startOf('month').format('yyyy-MM-dd') }}"
},
{
"id": "e88726c4-1eb8-4f29-9805-7b0a5ee484a4",
"name": "endDate",
"type": "string",
"value": "={{ $now.minus($json.monthIndex, 'month').endOf('month').format('yyyy-MM-dd') }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "6d5e917e-68ac-4dbd-98be-4c8ad97fa54a",
"name": "빈 보고서 건너뛰기",
"type": "n8n-nodes-base.filter",
"position": [
880,
500
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "f6c69f9b-9e78-4a1e-af33-a1197f35e970",
"operator": {
"type": "array",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json.timeentries }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "60c7a408-74d3-4c6c-ac78-1ed1071e873e",
"name": "첫 번째 워크스페이스 가져오기",
"type": "n8n-nodes-base.clockify",
"position": [
-880,
480
],
"parameters": {
"limit": 1,
"resource": "workspace"
},
"credentials": {
"clockifyApi": {
"id": "CMJ0LAYOs143GAXw",
"name": "Clockify (octionictest)"
}
},
"typeVersion": 1
},
{
"id": "824bf2c6-9159-40ec-83f3-3f0b8d87c208",
"name": "상세 월간 보고서 가져오기",
"type": "n8n-nodes-base.httpRequest",
"position": [
220,
480
],
"parameters": {
"url": "=https://reports.api.clockify.me/v1/workspaces/{{ $('Globals').item.json.workspace_id }}/reports/detailed",
"method": "POST",
"options": {},
"jsonBody": "={\n \"dateRangeStart\": \"{{ $json.startDate }}T00:00:00Z\",\n \"dateRangeEnd\": \"{{ $json.endDate }}T23:59:59.999Z\",\n \"detailedFilter\": {\n \"page\": 1,\n \"pageSize\": 50\n },\n \"exportType\": \"json\"\n}",
"sendBody": true,
"specifyBody": "json",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "clockifyApi"
},
"credentials": {
"clockifyApi": {
"id": "CMJ0LAYOs143GAXw",
"name": "Clockify (octionictest)"
}
},
"typeVersion": 4.2
},
{
"id": "f9323c68-c70f-4f22-ae18-916d5fc1b264",
"name": "GitHub에 파일 존재 여부 확인",
"type": "n8n-nodes-base.github",
"onError": "continueErrorOutput",
"position": [
440,
480
],
"parameters": {
"owner": {
"__rl": true,
"mode": "name",
"value": "={{ $('Globals').first().json.github_repo.owner }}"
},
"filePath": "=reports/{{ $('Set intervals').item.json.reportName }}",
"resource": "file",
"operation": "get",
"repository": {
"__rl": true,
"mode": "name",
"value": "={{ $('Globals').first().json.github_repo.name }}"
},
"additionalParameters": {}
},
"credentials": {
"githubApi": {
"id": "Eb9yCfVJGJvXD05z",
"name": "GitHub (n8n-test-01)"
}
},
"retryOnFail": false,
"typeVersion": 1
},
{
"id": "41877a6a-ba5b-43bd-8ca3-f8402793685f",
"name": "새 데이터 가리키기",
"type": "n8n-nodes-base.set",
"position": [
660,
200
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "00d2885f-451e-436e-8852-b9ad086d231b",
"name": "data",
"type": "array",
"value": "={{ $('Get detailed monthly report').item.json.timeentries }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "9f448921-5b9d-4937-a7d9-00a62b1fba99",
"name": "404 오류 메시지 확인",
"type": "n8n-nodes-base.if",
"position": [
660,
600
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "6b34c09d-0136-433c-856d-b29a0c3aac34",
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.error }}",
"rightValue": "could not be found"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "900905ed-cff6-4ebb-b0da-67db9f02b301",
"name": "GitHub에서 파일 업데이트",
"type": "n8n-nodes-base.github",
"position": [
1100,
180
],
"parameters": {
"owner": {
"__rl": true,
"mode": "name",
"value": "={{ $('Globals').first().json.github_repo.owner }}"
},
"filePath": "=reports/{{ $('Set intervals').item.json.reportName }}",
"resource": "file",
"operation": "edit",
"repository": {
"__rl": true,
"mode": "name",
"value": "={{ $('Globals').first().json.github_repo.name }}"
},
"fileContent": "={{ JSON.stringify($json.data, null, 2) }}",
"commitMessage": "Update report"
},
"credentials": {
"githubApi": {
"id": "Eb9yCfVJGJvXD05z",
"name": "GitHub (n8n-test-01)"
}
},
"typeVersion": 1
},
{
"id": "b928cdb2-b21a-45ff-9bc6-9be483891c4c",
"name": "GitHub에 파일 생성",
"type": "n8n-nodes-base.github",
"position": [
1100,
500
],
"parameters": {
"owner": {
"__rl": true,
"mode": "name",
"value": "={{ $('Globals').first().json.github_repo.owner }}"
},
"filePath": "=reports/{{ $('Set intervals').item.json.reportName }}",
"resource": "file",
"repository": {
"__rl": true,
"mode": "name",
"value": "={{ $('Globals').first().json.github_repo.name }}"
},
"fileContent": "={{ JSON.stringify($json.timeentries, null, 2) }}",
"commitMessage": "Create report"
},
"credentials": {
"githubApi": {
"id": "Eb9yCfVJGJvXD05z",
"name": "GitHub (n8n-test-01)"
}
},
"typeVersion": 1
},
{
"id": "04a5b42d-ea1f-4b32-98b5-953e22b26819",
"name": "스케줄 트리거",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-1100,
480
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 5
}
]
}
},
"typeVersion": 1.2
},
{
"id": "4728f389-df04-4f8d-a436-ac06508d28ba",
"name": "스티키 노트3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-720,
260
],
"parameters": {
"width": 220,
"height": 380,
"content": "## Set Globals\n- Define the repository owner (username / organization) and repository name\n- By default the fist available Clockify workspace ID is set. This can be overridden here."
},
"typeVersion": 1
},
{
"id": "2e31df0a-1e67-4a9a-8dc1-42360b4da978",
"name": "스티키 노트4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1160,
360
],
"parameters": {
"width": 220,
"height": 280,
"content": "## Set trigger\nBy default this workflow runs once a day."
},
"typeVersion": 1
},
{
"id": "696721c6-25fc-48f9-b0f5-53d1b6462183",
"name": "스티키 노트",
"type": "n8n-nodes-base.stickyNote",
"position": [
-500,
300
],
"parameters": {
"width": 220,
"height": 340,
"content": "## Set Scope (optional)\nBy default the last three moths are being backed up.\n_0 = current month, 1 = last month, etc._"
},
"typeVersion": 1
},
{
"id": "a0ebb845-7472-40ec-b2b5-abc2f118b0e1",
"name": "스티키 노트1",
"type": "n8n-nodes-base.stickyNote",
"position": [
160,
360
],
"parameters": {
"color": 7,
"width": 220,
"height": 280,
"content": "A detailed report is being retrieved for every month across all entries in the workspace."
},
"typeVersion": 1
},
{
"id": "feb9f194-4c9d-41c8-9b46-3759dcdae9d5",
"name": "스티키 노트2",
"type": "n8n-nodes-base.stickyNote",
"position": [
380,
100
],
"parameters": {
"color": 7,
"width": 920,
"height": 780,
"content": "The reports are created or updated in GitHub.\n**It is essential to back up previous months as well, as values like tags may still change over time.**"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "34ab93f2-a965-42ac-bd44-478c19a0f7d6",
"connections": {
"2f838fc8-96bf-4111-aaba-743e0c88b688": {
"main": [
[
{
"node": "bea9590e-355e-410a-bc4b-ae777efb9f15",
"type": "main",
"index": 0
}
]
]
},
"76c74727-d338-4a61-9bf2-e97893721995": {
"main": [
[
{
"node": "824bf2c6-9159-40ec-83f3-3f0b8d87c208",
"type": "main",
"index": 0
}
]
]
},
"11aa4b51-98f9-4df8-b2d2-6757fe686894": {
"main": [
[
{
"node": "900905ed-cff6-4ebb-b0da-67db9f02b301",
"type": "main",
"index": 0
}
],
[],
[]
]
},
"04a5b42d-ea1f-4b32-98b5-953e22b26819": {
"main": [
[
{
"node": "60c7a408-74d3-4c6c-ac78-1ed1071e873e",
"type": "main",
"index": 0
}
]
]
},
"24115363-9a03-4f8a-aa6e-2a9d4247f035": {
"main": [
[
{
"node": "11aa4b51-98f9-4df8-b2d2-6757fe686894",
"type": "main",
"index": 1
}
]
]
},
"41877a6a-ba5b-43bd-8ca3-f8402793685f": {
"main": [
[
{
"node": "11aa4b51-98f9-4df8-b2d2-6757fe686894",
"type": "main",
"index": 0
}
]
]
},
"bea9590e-355e-410a-bc4b-ae777efb9f15": {
"main": [
[
{
"node": "f541d535-80d9-439d-8543-9c3cb156a5ff",
"type": "main",
"index": 0
}
]
]
},
"f541d535-80d9-439d-8543-9c3cb156a5ff": {
"main": [
[
{
"node": "76c74727-d338-4a61-9bf2-e97893721995",
"type": "main",
"index": 0
}
]
]
},
"6d5e917e-68ac-4dbd-98be-4c8ad97fa54a": {
"main": [
[
{
"node": "b928cdb2-b21a-45ff-9bc6-9be483891c4c",
"type": "main",
"index": 0
}
]
]
},
"60c7a408-74d3-4c6c-ac78-1ed1071e873e": {
"main": [
[
{
"node": "2f838fc8-96bf-4111-aaba-743e0c88b688",
"type": "main",
"index": 0
}
]
]
},
"9f448921-5b9d-4937-a7d9-00a62b1fba99": {
"main": [
[
{
"node": "6d5e917e-68ac-4dbd-98be-4c8ad97fa54a",
"type": "main",
"index": 0
}
],
[
{
"node": "831ad368-6a46-4dd4-bb6c-8ea46200cdf0",
"type": "main",
"index": 0
}
]
]
},
"824bf2c6-9159-40ec-83f3-3f0b8d87c208": {
"main": [
[
{
"node": "f9323c68-c70f-4f22-ae18-916d5fc1b264",
"type": "main",
"index": 0
}
]
]
},
"f9323c68-c70f-4f22-ae18-916d5fc1b264": {
"main": [
[
{
"node": "41877a6a-ba5b-43bd-8ca3-f8402793685f",
"type": "main",
"index": 0
},
{
"node": "24115363-9a03-4f8a-aa6e-2a9d4247f035",
"type": "main",
"index": 0
}
],
[
{
"node": "9f448921-5b9d-4937-a7d9-00a62b1fba99",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 기타, 인사
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
워크플로우 임포터
다중 양식을 통해 워크플로우를 가져오고 인증 정보를 매핑하기
If
N8n
Set
+
If
N8n
Set
58 노드Mario
기타
Spotify 최근 좋아하는 곡 자동 다운로드
Spotify를 통해 최근에 좋아하는 곡 자동 다운로드
If
Set
Code
+
If
Set
Code
23 노드Mario
기타
시각화 참조 라이브러리에서 n8n 노드를 탐색
可视化 참조 라이브러리에서 n8n 노드를 탐색
If
Ftp
Set
+
If
Ftp
Set
113 노드I versus AI
기타
AI 대리인 레스토랑 [템플릿]
🤖 WhatsApp, 인스타그램, 메신저의 AI 레스토랑 도우미
If
N8n
Set
+
If
N8n
Set
239 노드Amanda Benks
기타
GitHub 동기화 대시보드 - V2
提交 기록과 롤백 기능을 갖춘 GitHub 워크플로우 버전 관리 대시보드
If
N8n
Set
+
If
N8n
Set
94 노드Eduard
데브옵스
Google 연락처와 Notion 양방향 동기화
双向동기화 Google 通讯录与 Notion
If
Set
Merge
+
If
Set
Merge
82 노드Solomon
기타
워크플로우 정보
난이도
고급
노드 수21
카테고리2
노드 유형12
저자
Mario
@octionicWorkflow Optimization Expert | Software Architect. Use my link to book an initial consultation for custom built workflows using n8n.
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유