diff --git a/.circleci/config.yml b/.circleci/config.yml
index 6f4181a5efa6743ef6fae03aefd8d7f9244c95c7..36aac8aef8068617711181bee1dd2adc817a8377 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -576,6 +576,8 @@ jobs:
       e:
         type: executor
         default: clojure-and-node
+      cypress-group:
+        type: string
       only-single-database:
         type: boolean
         default: false
@@ -586,6 +588,8 @@ jobs:
         type: string
         default: ""
     executor: << parameters.e >>
+    environment:
+      CYPRESS_GROUP:  << parameters.cypress-group >>
     steps:
       - run-yarn-command:
           command-name: Run Cypress tests
@@ -872,10 +876,31 @@ workflows:
           requires:
             - build-uberjar
             - fe-deps
+
+      - fe-tests-cypress:
+          name: fe-tests-cypress-1
+          requires:
+            - build-uberjar
+            - fe-deps
+          cypress-group: "default"
+      - fe-tests-cypress:
+          name: fe-tests-cypress-2
+          requires:
+            - build-uberjar
+            - fe-deps
+          cypress-group: "default"
+      - fe-tests-cypress:
+          name: fe-tests-cypress-3
+          requires:
+            - build-uberjar
+            - fe-deps
+          cypress-group: "default"
       - fe-tests-cypress:
+          name: fe-tests-cypress-4
           requires:
             - build-uberjar
             - fe-deps
+          cypress-group: "default"
 
       - fe-tests-cypress:
           name: fe-tests-cypress-mongo
@@ -883,6 +908,7 @@ workflows:
             - build-uberjar
             - fe-deps
           e: fe-mongo
+          cypress-group: "mongo"
           driver: mongo
           only-single-database: true
           test-files-location: frontend/test/metabase-db/mongo
diff --git a/frontend/test/__runner__/run_cypress_tests.js b/frontend/test/__runner__/run_cypress_tests.js
index d0c5d35ffef8a33e7a121235216a10feed228b76..76bb1f1d0fb33abe2cef48a3191eee570cecff16 100644
--- a/frontend/test/__runner__/run_cypress_tests.js
+++ b/frontend/test/__runner__/run_cypress_tests.js
@@ -86,6 +86,10 @@ const init = async () => {
             "junit",
             "--reporter-options",
             "mochaFile=cypress/results/results-[hash].xml",
+            "--record",
+            "--parallel",
+            "--group",
+            process.env["CYPRESS_GROUP"],
           ]
         : []),
     ],
diff --git a/frontend/test/cypress.json b/frontend/test/cypress.json
index 2d6709c27b82a6c323fee05e2a0e4c48b6149268..309aa12fd26cc9a4340aca66c9994a6878e576f7 100644
--- a/frontend/test/cypress.json
+++ b/frontend/test/cypress.json
@@ -1,4 +1,5 @@
 {
+  "projectId": "a394u1",
   "testFiles": "**/*.cy.spec.js",
   "pluginsFile": "frontend/test/cypress-plugins.js",
   "integrationFolder": "frontend/test/metabase",