{
  "name": "Backup Clockify to Github based on monthly reports",
  "nodes": [
    {
      "id": "24115363-9a03-4f8a-aa6e-2a9d4247f035",
      "name": "Extract from File",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        660,
        400
      ]
    },
    {
      "id": "11aa4b51-98f9-4df8-b2d2-6757fe686894",
      "name": "Compare Datasets",
      "type": "n8n-nodes-base.compareDatasets",
      "position": [
        880,
        280
      ]
    },
    {
      "id": "831ad368-6a46-4dd4-bb6c-8ea46200cdf0",
      "name": "Stop and Error",
      "type": "n8n-nodes-base.stopAndError",
      "position": [
        880,
        700
      ]
    },
    {
      "id": "2f838fc8-96bf-4111-aaba-743e0c88b688",
      "name": "Globals",
      "type": "n8n-nodes-base.set",
      "position": [
        -660,
        480
      ]
    },
    {
      "id": "bea9590e-355e-410a-bc4b-ae777efb9f15",
      "name": "Set month indexes",
      "type": "n8n-nodes-base.set",
      "position": [
        -440,
        480
      ]
    },
    {
      "id": "f541d535-80d9-439d-8543-9c3cb156a5ff",
      "name": "Split Out indexes",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -220,
        480
      ]
    },
    {
      "id": "76c74727-d338-4a61-9bf2-e97893721995",
      "name": "Set intervals",
      "type": "n8n-nodes-base.set",
      "position": [
        0,
        480
      ]
    },
    {
      "id": "6d5e917e-68ac-4dbd-98be-4c8ad97fa54a",
      "name": "Skip empty reports",
      "type": "n8n-nodes-base.filter",
      "position": [
        880,
        500
      ]
    },
    {
      "id": "60c7a408-74d3-4c6c-ac78-1ed1071e873e",
      "name": "Get first workspace",
      "type": "n8n-nodes-base.clockify",
      "position": [
        -880,
        480
      ]
    },
    {
      "id": "824bf2c6-9159-40ec-83f3-3f0b8d87c208",
      "name": "Get detailed monthly report",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        220,
        480
      ]
    },
    {
      "id": "f9323c68-c70f-4f22-ae18-916d5fc1b264",
      "name": "Check if file exists in GitHub",
      "type": "n8n-nodes-base.github",
      "position": [
        440,
        480
      ]
    },
    {
      "id": "41877a6a-ba5b-43bd-8ca3-f8402793685f",
      "name": "Point to new data",
      "type": "n8n-nodes-base.set",
      "position": [
        660,
        200
      ]
    },
    {
      "id": "9f448921-5b9d-4937-a7d9-00a62b1fba99",
      "name": "Check for 404 error message",
      "type": "n8n-nodes-base.if",
      "position": [
        660,
        600
      ]
    },
    {
      "id": "900905ed-cff6-4ebb-b0da-67db9f02b301",
      "name": "Update file in GitHub",
      "type": "n8n-nodes-base.github",
      "position": [
        1100,
        180
      ]
    },
    {
      "id": "b928cdb2-b21a-45ff-9bc6-9be483891c4c",
      "name": "Create file in GitHub",
      "type": "n8n-nodes-base.github",
      "position": [
        1100,
        500
      ]
    },
    {
      "id": "04a5b42d-ea1f-4b32-98b5-953e22b26819",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -1100,
        480
      ]
    },
    {
      "id": "4728f389-df04-4f8d-a436-ac06508d28ba",
      "name": "Sticky Note3",
      "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."
      }
    },
    {
      "id": "2e31df0a-1e67-4a9a-8dc1-42360b4da978",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1160,
        360
      ],
      "parameters": {
        "width": 220,
        "height": 280,
        "content": "## Set trigger\nBy default this workflow runs once a day."
      }
    },
    {
      "id": "696721c6-25fc-48f9-b0f5-53d1b6462183",
      "name": "Sticky Note",
      "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._"
      }
    },
    {
      "id": "a0ebb845-7472-40ec-b2b5-abc2f118b0e1",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        160,
        360
      ],
      "parameters": {
        "width": 220,
        "height": 280,
        "content": "A detailed report is being retrieved for every month across all entries in the workspace."
      }
    },
    {
      "id": "feb9f194-4c9d-41c8-9b46-3759dcdae9d5",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        380,
        100
      ],
      "parameters": {
        "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.**"
      }
    }
  ],
  "connections": {
    "Globals": {
      "main": [
        [
          {
            "node": "Set month indexes",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set intervals": {
      "main": [
        [
          {
            "node": "Get detailed monthly report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Compare Datasets": {
      "main": [
        [
          {
            "node": "Update file in GitHub",
            "type": "main",
            "index": 0
          }
        ],
        [],
        []
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Get first workspace",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract from File": {
      "main": [
        [
          {
            "node": "Compare Datasets",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Point to new data": {
      "main": [
        [
          {
            "node": "Compare Datasets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set month indexes": {
      "main": [
        [
          {
            "node": "Split Out indexes",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out indexes": {
      "main": [
        [
          {
            "node": "Set intervals",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Skip empty reports": {
      "main": [
        [
          {
            "node": "Create file in GitHub",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get first workspace": {
      "main": [
        [
          {
            "node": "Globals",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check for 404 error message": {
      "main": [
        [
          {
            "node": "Skip empty reports",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Stop and Error",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get detailed monthly report": {
      "main": [
        [
          {
            "node": "Check if file exists in GitHub",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check if file exists in GitHub": {
      "main": [
        [
          {
            "node": "Point to new data",
            "type": "main",
            "index": 0
          },
          {
            "node": "Extract from File",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Check for 404 error message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}