How to schedule recurring API data fetch and update Bubble database automatically?

I’m working on a Bubble.io app where I need to fetch API data every hour and store it in my Bubble database without any user interaction. Additionally, if there are changes in the API data, I want to modify the existing data in the Bubble database accordingly.

Has anyone done this before? What would be the best approach to set up a recurring workflow for this, and how can I ensure that only changed data is updated in my database?

{
  "get": "odds",
  "parameters": {
    "fixture": "326090",
    "bookmaker": "6"
  },
  "errors": [],
  "results": 1,
  "paging": {
    "current": 1,
    "total": 1
  },
  "response": [
    {
      "league": {
        "id": 116,
        "name": "Vysshaya Liga",
        "country": "Belarus",
        "logo": "https://media.api-sports.io/football/leagues/116.png",
        "flag": "https://media.api-sports.io/flags/by.svg",
        "season": 2020
      },
      "fixture": {
        "id": 326090,
        "timezone": "UTC",
        "date": "2020-05-15T15:00:00+00:00",
        "timestamp": 1589554800
      },
      "update": "2020-05-15T09:49:32+00:00",
      "bookmakers": [
        {
          "id": 6,
          "name": "Bwin",
          "bets": [
            {
              "id": 38,
              "name": "Exact Goals Number",
              "values": [
                {
                  "value": 4,
                  "odd": "7.00"
                },
                {
                  "value": 3,
                  "odd": "4.40"
                },
                {
                  "value": 2,
                  "odd": "3.40"
                },
                {
                  "value": "more 8",
                  "odd": "251.00"
                },
                {
                  "value": 7,
                  "odd": "101.00"
                },
                {
                  "value": "more 5",
                  "odd": "8.00"
                },
                {
                  "value": 6,
                  "odd": "31.00"
                },
                {
                  "value": 5,
                  "odd": "14.00"
                },
                {
                  "value": 0,
                  "odd": "6.25"
                },
                {
                  "value": 1,
                  "odd": "3.90"
                }
              ]
            },
            {
              "id": 20,
              "name": "Double Chance - First Half",
              "values": [
                {
                  "value": "Home/Draw",
                  "odd": "1.20"
                },
                {
                  "value": "Home/Away",
                  "odd": "1.75"
                },
                {
                  "value": "Draw/Away",
                  "odd": "1.26"
                }
              ]
            },
            {
              "id": 17,
              "name": "Total - Away",
              "values": [
                {
                  "value": "Under 2.5",
                  "odd": "1.06"
                },
                {
                  "value": "Over 2.5",
                  "odd": "7.25"
                },
                {
                  "value": "Under 1.5",
                  "odd": "1.33"
                },
                {
                  "value": "Over 1.5",
                  "odd": "3.10"
                }
              ]
            },
            {
              "id": 16,
              "name": "Total - Home",
              "values": [
                {
                  "value": "Under 2.5",
                  "odd": "1.09"
                },
                {
                  "value": "Over 2.5",
                  "odd": "6.25"
                },
                {
                  "value": "Under 1.5",
                  "odd": "1.40"
                },
                {
                  "value": "Over 1.5",
                  "odd": "2.70"
                }
              ]
            },
            {
              "id": 22,
              "name": "Odd/Even - First Half",
              "values": [
                {
                  "value": "Even",
                  "odd": "1.60"
                },
                {
                  "value": "Odd",
                  "odd": "2.20"
                }
              ]
            },
            {
              "id": 21,
              "name": "Odd/Even",
              "values": [
                {
                  "value": "Even",
                  "odd": "1.80"
                },
                {
                  "value": "Odd",
                  "odd": "1.91"
                }
              ]
            },
            {
              "id": 34,
              "name": "Both Teams Score - First Half",
              "values": [
                {
                  "value": "No",
                  "odd": "1.14"
                },
                {
                  "value": "Yes",
                  "odd": "5.00"
                }
              ]
            },
            {
              "id": 32,
              "name": "Win Both Halves",
              "values": [
                {
                  "value": "Away",
                  "odd": "10.50"
                },
                {
                  "value": "Draw",
                  "odd": "1.13"
                },
                {
                  "value": "Home",
                  "odd": "8.00"
                }
              ]
            },
            {
              "id": 12,
              "name": "Double Chance",
              "values": [
                {
                  "value": "Draw/Away",
                  "odd": "1.50"
                },
                {
                  "value": "Home/Away",
                  "odd": "1.33"
                },
                {
                  "value": "Home/Draw",
                  "odd": "1.36"
                }
              ]
            },
            {
              "id": 10,
              "name": "Exact Score",
              "values": [
                {
                  "value": "3:4",
                  "odd": "126.00"
                },
                {
                  "value": "2:4",
                  "odd": "81.00"
                },
                {
                  "value": "2:3",
                  "odd": "36.00"
                },
                {
                  "value": "1:4",
                  "odd": "67.00"
                },
                {
                  "value": "1:3",
                  "odd": "26.00"
                },
                {
                  "value": "1:2",
                  "odd": "11.50"
                },
                {
                  "value": "0:4",
                  "odd": "67.00"
                },
                {
                  "value": "4:1",
                  "odd": "51.00"
                },
                {
                  "value": "4:0",
                  "odd": "51.00"
                },
                {
                  "value": "3:2",
                  "odd": "34.00"
                },
                {
                  "value": "3:1",
                  "odd": "21.00"
                },
                {
                  "value": "3:0",
                  "odd": "23.00"
                },
                {
                  "value": "2:1",
                  "odd": "10.50"
                },
                {
                  "value": "2:0",
                  "odd": "11.50"
                },
                {
                  "value": "1:0",
                  "odd": "7.25"
                },
                {
                  "value": "4:2",
                  "odd": "81.00"
                },
                {
                  "value": "4:3",
                  "odd": "126.00"
                },
                {
                  "value": "0:3",
                  "odd": "31.00"
                },
                {
                  "value": "0:2",
                  "odd": "14.00"
                },
                {
                  "value": "0:1",
                  "odd": "8.25"
                },
                {
                  "value": "4:4",
                  "odd": "151.00"
                },
                {
                  "value": "3:3",
                  "odd": "67.00"
                },
                {
                  "value": "2:2",
                  "odd": "16.00"
                },
                {
                  "value": "1:1",
                  "odd": "6.25"
                },
                {
                  "value": "0:0",
                  "odd": "6.25"
                }
              ]
            },
            {
              "id": 13,
              "name": "First Half Winner",
              "values": [
                {
                  "value": "Home",
                  "odd": "3.20"
                },
                {
                  "value": "Draw",
                  "odd": "1.90"
                },
                {
                  "value": "Away",
                  "odd": "3.70"
                }
              ]
            },
            {
              "id": 15,
              "name": "Team To Score Last",
              "values": [
                {
                  "value": "No goal",
                  "odd": "6.25"
                },
                {
                  "value": "Away",
                  "odd": "2.15"
                },
                {
                  "value": "Home",
                  "odd": "1.95"
                }
              ]
            },
            {
              "id": 14,
              "name": "Team To Score First",
              "values": [
                {
                  "value": "Away",
                  "odd": "2.15"
                },
                {
                  "value": "Draw",
                  "odd": "6.25"
                },
                {
                  "value": "Home",
                  "odd": "1.95"
                }
              ]
            },
            {
              "id": 46,
              "name": "Exact Goals Number - First Half",
              "values": [
                {
                  "value": "more 3",
                  "odd": "8.25"
                },
                {
                  "value": 0,
                  "odd": "2.35"
                },
                {
                  "value": 1,
                  "odd": "2.60"
                },
                {
                  "value": 2,
                  "odd": "4.75"
                }
              ]
            },
            {
              "id": 25,
              "name": "Result/Total Goals",
              "values": [
                {
                  "value": "Home/Over 2.5",
                  "odd": "4.60"
                },
                {
                  "value": "Away/Under 3.5",
                  "odd": "3.50"
                },
                {
                  "value": "Home/Under 3.5",
                  "odd": "3.00"
                },
                {
                  "value": "Away/Over 3.5",
                  "odd": "12.00"
                },
                {
                  "value": "Home/Over 3.5",
                  "odd": "9.25"
                },
                {
                  "value": "Away/Over 2.5",
                  "odd": "5.50"
                },
                {
                  "value": "Home/Under 2.5",
                  "odd": "4.50"
                },
                {
                  "value": "Away/Under 2.5",
                  "odd": "5.25"
                }
              ]
            },
            {
              "id": 24,
              "name": "Results/Both Teams Score",
              "values": [
                {
                  "value": "Away/No",
                  "odd": "4.40"
                },
                {
                  "value": "Draw/No",
                  "odd": "6.25"
                },
                {
                  "value": "Home/No",
                  "odd": "3.75"
                },
                {
                  "value": "Away/Yes",
                  "odd": "6.50"
                },
                {
                  "value": "Draw/Yes",
                  "odd": "4.50"
                },
                {
                  "value": "Home/Yes",
                  "odd": "5.50"
                }
              ]
            },
            {
              "id": 44,
              "name": "Away Team Score a Goal",
              "values": [
                {
                  "value": "No",
                  "odd": "2.55"
                },
                {
                  "value": "Yes",
                  "odd": "1.45"
                }
              ]
            },
            {
              "id": 43,
              "name": "Home Team Score a Goal",
              "values": [
                {
                  "value": "No",
                  "odd": "2.90"
                },
                {
                  "value": "Yes",
                  "odd": "1.36"
                }
              ]
            },
            {
              "id": 40,
              "name": "Home Team Exact Goals Number",
              "values": [
                {
                  "value": 1,
                  "odd": "2.55"
                },
                {
                  "value": 2,
                  "odd": "4.20"
                },
                {
                  "value": 0,
                  "odd": "2.90"
                },
                {
                  "value": "more 3",
                  "odd": "6.25"
                }
              ]
            },
            {
              "id": 42,
              "name": "Second Half Exact Goals Number",
              "values": [
                {
                  "value": "more 3",
                  "odd": "5.50"
                },
                {
                  "value": 0,
                  "odd": "3.00"
                },
                {
                  "value": 1,
                  "odd": "2.60"
                },
                {
                  "value": 2,
                  "odd": "3.90"
                }
              ]
            },
            {
              "id": 41,
              "name": "Away Team Exact Goals Number",
              "values": [
                {
                  "value": "more 3",
                  "odd": "7.25"
                },
                {
                  "value": 0,
                  "odd": "2.55"
                },
                {
                  "value": 1,
                  "odd": "2.50"
                },
                {
                  "value": 2,
                  "odd": "4.60"
                }
              ]
            },
            {
              "id": 7,
              "name": "HT/FT Double",
              "values": [
                {
                  "value": "Home/Home",
                  "odd": "4.20"
                },
                {
                  "value": "Draw/Draw",
                  "odd": "4.10"
                },
                {
                  "value": "Draw/Away",
                  "odd": "6.75"
                },
                {
                  "value": "Home/Away",
                  "odd": "36.00"
                },
                {
                  "value": "Home/Draw",
                  "odd": "14.50"
                },
                {
                  "value": "Away/Away",
                  "odd": "5.00"
                },
                {
                  "value": "Away/Draw",
                  "odd": "14.50"
                },
                {
                  "value": "Away/Home",
                  "odd": "31.00"
                },
                {
                  "value": "Draw/Home",
                  "odd": "5.75"
                }
              ]
            },
            {
              "id": 26,
              "name": "Goals Over/Under - Second Half",
              "values": [
                {
                  "value": "Under 3.5",
                  "odd": "1.01"
                },
                {
                  "value": "Over 3.5",
                  "odd": "12.00"
                },
                {
                  "value": "Over 1.5",
                  "odd": "2.50"
                },
                {
                  "value": "Under 1.5",
                  "odd": "1.48"
                },
                {
                  "value": "Under 0.5",
                  "odd": "3.00"
                },
                {
                  "value": "Over 0.5",
                  "odd": "1.34"
                },
                {
                  "value": "Under 2.5",
                  "odd": "1.11"
                },
                {
                  "value": "Over 2.5",
                  "odd": "5.50"
                }
              ]
            },
            {
              "id": 6,
              "name": "Goals Over/Under First Half",
              "values": [
                {
                  "value": "Under 0.5",
                  "odd": "2.35"
                },
                {
                  "value": "Over 0.5",
                  "odd": "1.53"
                },
                {
                  "value": "Under 2.5",
                  "odd": "1.04"
                },
                {
                  "value": "Over 2.5",
                  "odd": "8.25"
                },
                {
                  "value": "Under 1.5",
                  "odd": "1.28"
                },
                {
                  "value": "Over 1.5",
                  "odd": "3.30"
                },
                {
                  "value": "Under 3.5",
                  "odd": "1.01"
                },
                {
                  "value": "Over 3.5",
                  "odd": "21.00"
                }
              ]
            },
            {
              "id": 5,
              "name": "Goals Over/Under",
              "values": [
                {
                  "value": "Under 5.5",
                  "odd": "1.01"
                },
                {
                  "value": "Over 3.5",
                  "odd": "4.20"
                },
                {
                  "value": "Under 3.5",
                  "odd": "1.19"
                },
                {
                  "value": "Over 1.5",
                  "odd": "1.44"
                },
                {
                  "value": "Over 5.5",
                  "odd": "15.00"
                },
                {
                  "value": "Under 0.5",
                  "odd": "6.25"
                },
                {
                  "value": "Over 0.5",
                  "odd": "1.09"
                },
                {
                  "value": "Under 2.5",
                  "odd": "1.55"
                },
                {
                  "value": "Over 2.5",
                  "odd": "2.35"
                },
                {
                  "value": "Under 4.5",
                  "odd": "1.05"
                },
                {
                  "value": "Over 4.5",
                  "odd": "8.00"
                },
                {
                  "value": "Under 1.5",
                  "odd": "2.60"
                }
              ]
            },
            {
              "id": 3,
              "name": "Second Half Winner",
              "values": [
                {
                  "value": "Away",
                  "odd": "3.30"
                },
                {
                  "value": "Draw",
                  "odd": "2.20"
                },
                {
                  "value": "Home",
                  "odd": "2.85"
                }
              ]
            },
            {
              "id": 2,
              "name": "Home/Away",
              "values": [
                {
                  "value": "Away",
                  "odd": "2.05"
                },
                {
                  "value": "Home",
                  "odd": "1.70"
                }
              ]
            },
            {
              "id": 1,
              "name": "Match Winner",
              "values": [
                {
                  "value": "Away",
                  "odd": "2.95"
                },
                {
                  "value": "Draw",
                  "odd": "2.95"
                },
                {
                  "value": "Home",
                  "odd": "2.50"
                }
              ]
            },
            {
              "id": 9,
              "name": "Handicap Result",
              "values": [
                {
                  "value": "Away -2",
                  "odd": "1.13"
                },
                {
                  "value": "Draw -2",
                  "odd": "7.00"
                },
                {
                  "value": "Home -2",
                  "odd": "12.00"
                },
                {
                  "value": "Home -1",
                  "odd": "5.25"
                },
                {
                  "value": "Away +2",
                  "odd": "15.00"
                },
                {
                  "value": "Draw +2",
                  "odd": "8.25"
                },
                {
                  "value": "Home +2",
                  "odd": "1.09"
                },
                {
                  "value": "Draw +1",
                  "odd": "4.40"
                },
                {
                  "value": "Away +1",
                  "odd": "6.75"
                },
                {
                  "value": "Home +1",
                  "odd": "1.36"
                },
                {
                  "value": "Draw -1",
                  "odd": "4.00"
                },
                {
                  "value": "Away -1",
                  "odd": "1.50"
                }
              ]
            },
            {
              "id": 30,
              "name": "Win to Nil - Away",
              "values": [
                {
                  "value": "Yes",
                  "odd": "4.40"
                },
                {
                  "value": "No",
                  "odd": "1.17"
                }
              ]
            },
            {
              "id": 29,
              "name": "Win to Nil - Home",
              "values": [
                {
                  "value": "No",
                  "odd": "1.22"
                },
                {
                  "value": "Yes",
                  "odd": "3.75"
                }
              ]
            },
            {
              "id": 8,
              "name": "Both Teams Score",
              "values": [
                {
                  "value": "No",
                  "odd": "1.72"
                },
                {
                  "value": "Yes",
                  "odd": "2.00"
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}