From e8f1f879d55d61c207aefc41e0342d3ba7a79407 Mon Sep 17 00:00:00 2001
From: Aimane Chnaif <96077027+aimane-chnaif@users.noreply.github.com>
Date: Tue, 23 Dec 2025 12:22:46 +0100
Subject: [PATCH] Revert "Bring overLimitForwardsTo configuration into New
 Expensify"

---
 src/ROUTES.ts                                 |  20 +-
 src/SCREENS.ts                                |   3 -
 src/components/AmountForm.tsx                 |  10 -
 src/components/ApprovalWorkflowSection.tsx    |  39 +--
 .../Icon/chunks/expensify-icons.chunk.ts      |   2 -
 src/components/NumberWithSymbolForm.tsx       | 130 ++++----
 src/languages/de.ts                           |  20 +-
 src/languages/en.ts                           |  20 +-
 src/languages/es.ts                           |  20 +-
 src/languages/fr.ts                           |  21 +-
 src/languages/it.ts                           |  21 +-
 src/languages/ja.ts                           |  20 +-
 src/languages/nl.ts                           |  21 +-
 src/languages/pl.ts                           |  20 +-
 src/languages/pt-BR.ts                        |  21 +-
 src/languages/zh-hans.ts                      |  18 +-
 .../ModalStackNavigators/index.tsx            |   6 -
 .../RELATIONS/WORKSPACE_TO_RHP.ts             |   3 -
 src/libs/Navigation/linkingConfig/config.ts   |   9 -
 src/libs/Navigation/types.ts                  |  16 +-
 src/libs/WorkflowUtils.ts                     |  55 +---
 src/libs/actions/Workflow.ts                  |  18 --
 src/pages/workspace/withPolicy.tsx            |   3 -
 .../workflows/WorkspaceWorkflowsPage.tsx      |   1 -
 .../approvals/ApprovalWorkflowEditor.tsx      |  27 +-
 ...aceWorkflowsApprovalsApprovalLimitPage.tsx | 295 ------------------
 ...orkspaceWorkflowsApprovalsApproverPage.tsx |  91 +++---
 .../WorkspaceWorkflowsApprovalsCreatePage.tsx |   8 +-
 .../WorkspaceWorkflowsApprovalsEditPage.tsx   |  23 +-
 ...paceWorkflowsApprovalsExpensesFromPage.tsx |   2 +-
 ...orkflowsApprovalsOverLimitApproverPage.tsx | 170 ----------
 src/styles/index.ts                           |   5 -
 src/types/onyx/ApprovalWorkflow.ts            |  15 -
 src/types/onyx/PolicyEmployee.ts              |   4 +-
 tests/unit/WorkflowUtilsTest.ts               | 258 +--------------
 35 files changed, 170 insertions(+), 1245 deletions(-)
 delete mode 100644 src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsApprovalLimitPage.tsx
 delete mode 100644 src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsOverLimitApproverPage.tsx

diff --git a/src/ROUTES.ts b/src/ROUTES.ts
index 6878a9989e5a..3ad9cea17472 100644
--- a/src/ROUTES.ts
+++ b/src/ROUTES.ts
@@ -1734,23 +1734,15 @@ const ROUTES = {
     },
     WORKSPACE_WORKFLOWS_APPROVALS_EXPENSES_FROM: {
         route: 'workspaces/:policyID/workflows/approvals/expenses-from',
-        getRoute: (policyID: string) => `workspaces/${policyID}/workflows/approvals/expenses-from` as const,
+
+        // eslint-disable-next-line no-restricted-syntax -- Legacy route generation
+        getRoute: (policyID: string, backTo?: string) => getUrlWithBackToParam(`workspaces/${policyID}/workflows/approvals/expenses-from` as const, backTo),
     },
     WORKSPACE_WORKFLOWS_APPROVALS_APPROVER: {
         route: 'workspaces/:policyID/workflows/approvals/approver',
-        getRoute: (policyID: string, approverIndex: number) => `workspaces/${policyID}/workflows/approvals/approver?approverIndex=${approverIndex}` as const,
-    },
-    WORKSPACE_WORKFLOWS_APPROVALS_APPROVER_CHANGE: {
-        route: 'workspaces/:policyID/workflows/approvals/approver-change',
-        getRoute: (policyID: string, approverIndex: number) => `workspaces/${policyID}/workflows/approvals/approver-change?approverIndex=${approverIndex}` as const,
-    },
-    WORKSPACE_WORKFLOWS_APPROVALS_APPROVAL_LIMIT: {
-        route: 'workspaces/:policyID/workflows/approvals/approval-limit',
-        getRoute: (policyID: string, approverIndex: number) => `workspaces/${policyID}/workflows/approvals/approval-limit?approverIndex=${approverIndex}` as const,
-    },
-    WORKSPACE_WORKFLOWS_APPROVALS_OVER_LIMIT_APPROVER: {
-        route: 'workspaces/:policyID/workflows/approvals/over-limit-approver',
-        getRoute: (policyID: string, approverIndex: number) => `workspaces/${policyID}/workflows/approvals/over-limit-approver?approverIndex=${approverIndex}` as const,
+        getRoute: (policyID: string, approverIndex: number, backTo?: string) =>
+            // eslint-disable-next-line no-restricted-syntax -- Legacy route generation
+            getUrlWithBackToParam(`workspaces/${policyID}/workflows/approvals/approver?approverIndex=${approverIndex}` as const, backTo),
     },
     WORKSPACE_WORKFLOWS_PAYER: {
         route: 'workspaces/:policyID/workflows/payer',
diff --git a/src/SCREENS.ts b/src/SCREENS.ts
index 8b8fb870610b..b86fccfa130f 100644
--- a/src/SCREENS.ts
+++ b/src/SCREENS.ts
@@ -666,9 +666,6 @@ const SCREENS = {
         WORKFLOWS_APPROVALS_EDIT: 'Workspace_Approvals_Edit',
         WORKFLOWS_APPROVALS_EXPENSES_FROM: 'Workspace_Workflows_Approvals_Expenses_From',
         WORKFLOWS_APPROVALS_APPROVER: 'Workspace_Workflows_Approvals_Approver',
-        WORKFLOWS_APPROVALS_APPROVER_CHANGE: 'Workspace_Workflows_Approvals_Approver_Change',
-        WORKFLOWS_APPROVALS_APPROVAL_LIMIT: 'Workspace_Workflows_Approvals_Approval_Limit',
-        WORKFLOWS_APPROVALS_OVER_LIMIT_APPROVER: 'Workspace_Workflows_Approvals_Over_Limit_Approver',
         WORKFLOWS_AUTO_REPORTING_FREQUENCY: 'Workspace_Workflows_Auto_Reporting_Frequency',
         WORKFLOWS_AUTO_REPORTING_MONTHLY_OFFSET: 'Workspace_Workflows_Auto_Reporting_Monthly_Offset',
         WORKFLOWS_CONNECT_EXISTING_BANK_ACCOUNT: 'Workspace_Workflows_Connect_Existing_Bank_Account',
diff --git a/src/components/AmountForm.tsx b/src/components/AmountForm.tsx
index a9d15ec83897..5d86de37fc21 100644
--- a/src/components/AmountForm.tsx
+++ b/src/components/AmountForm.tsx
@@ -43,14 +43,8 @@ type AmountFormProps = {
     /** Whether to hide the currency symbol */
     hideCurrencySymbol?: boolean;
 
-    /** Whether the input should be disabled */
-    disabled?: boolean;
-
     /** Reference to the outer element */
     ref?: ForwardedRef<BaseTextInputRef>;
-
-    /** Callback when the user presses the submit key (Enter) */
-    onSubmitEditing?: () => void;
 } & Pick<BaseTextInputProps, 'autoFocus' | 'autoGrowExtraSpace' | 'autoGrowMarginSide'>;
 
 /**
@@ -68,11 +62,9 @@ function AmountForm({
     label,
     decimals: decimalsProp,
     hideCurrencySymbol = false,
-    disabled = false,
     autoFocus,
     autoGrowExtraSpace,
     autoGrowMarginSide,
-    onSubmitEditing,
     ref,
 }: AmountFormProps) {
     const styles = useThemeStyles();
@@ -107,8 +99,6 @@ function AmountForm({
             autoFocus={autoFocus}
             autoGrowExtraSpace={autoGrowExtraSpace}
             autoGrowMarginSide={autoGrowMarginSide}
-            onSubmitEditing={onSubmitEditing}
-            disabled={disabled}
         />
     );
 }
diff --git a/src/components/ApprovalWorkflowSection.tsx b/src/components/ApprovalWorkflowSection.tsx
index a037a6004430..37c7fbbdae7a 100644
--- a/src/components/ApprovalWorkflowSection.tsx
+++ b/src/components/ApprovalWorkflowSection.tsx
@@ -1,17 +1,12 @@
 import {Str} from 'expensify-common';
-import React from 'react';
+import React, {useCallback, useMemo} from 'react';
 import {View} from 'react-native';
 import {useMemoizedLazyExpensifyIcons} from '@hooks/useLazyAsset';
 import useLocalize from '@hooks/useLocalize';
-import useOnyx from '@hooks/useOnyx';
 import useResponsiveLayout from '@hooks/useResponsiveLayout';
 import useTheme from '@hooks/useTheme';
 import useThemeStyles from '@hooks/useThemeStyles';
 import {sortAlphabetically} from '@libs/OptionsListUtils';
-import {getApprovalLimitDescription} from '@libs/WorkflowUtils';
-import CONST from '@src/CONST';
-import ONYXKEYS from '@src/ONYXKEYS';
-import {personalDetailsByEmailSelector} from '@src/selectors/PersonalDetails';
 import type ApprovalWorkflow from '@src/types/onyx/ApprovalWorkflow';
 import Icon from './Icon';
 import MenuItem from './MenuItem';
@@ -24,30 +19,30 @@ type ApprovalWorkflowSectionProps = {
 
     /** A function that is called when the section is pressed */
     onPress: () => void;
-
-    /** Currency used for formatting approval limits */
-    currency?: string;
 };
 
-function ApprovalWorkflowSection({approvalWorkflow, onPress, currency = CONST.CURRENCY.USD}: ApprovalWorkflowSectionProps) {
+function ApprovalWorkflowSection({approvalWorkflow, onPress}: ApprovalWorkflowSectionProps) {
     const icons = useMemoizedLazyExpensifyIcons(['ArrowRight', 'Lightbulb', 'Users', 'UserCheck']);
     const styles = useThemeStyles();
     const theme = useTheme();
     const {translate, toLocaleOrdinal, localeCompare} = useLocalize();
     const {shouldUseNarrowLayout} = useResponsiveLayout();
-    const [personalDetailsByEmail] = useOnyx(ONYXKEYS.PERSONAL_DETAILS_LIST, {
-        canBeMissing: true,
-        selector: personalDetailsByEmailSelector,
-    });
 
-    const approverTitle = (index: number) =>
-        approvalWorkflow.approvers.length > 1 ? `${toLocaleOrdinal(index + 1, true)} ${translate('workflowsPage.approver').toLowerCase()}` : `${translate('workflowsPage.approver')}`;
+    const approverTitle = useCallback(
+        (index: number) =>
+            approvalWorkflow.approvers.length > 1 ? `${toLocaleOrdinal(index + 1, true)} ${translate('workflowsPage.approver').toLowerCase()}` : `${translate('workflowsPage.approver')}`,
+        [approvalWorkflow.approvers.length, toLocaleOrdinal, translate],
+    );
+
+    const members = useMemo(() => {
+        if (approvalWorkflow.isDefault) {
+            return translate('workspace.common.everyone');
+        }
 
-    const members = approvalWorkflow.isDefault
-        ? translate('workspace.common.everyone')
-        : sortAlphabetically(approvalWorkflow.members, 'displayName', localeCompare)
-              .map((m) => Str.removeSMSDomain(m.displayName))
-              .join(', ');
+        return sortAlphabetically(approvalWorkflow.members, 'displayName', localeCompare)
+            .map((m) => Str.removeSMSDomain(m.displayName))
+            .join(', ');
+    }, [approvalWorkflow.isDefault, approvalWorkflow.members, translate, localeCompare]);
 
     return (
         <PressableWithoutFeedback
@@ -105,8 +100,6 @@ function ApprovalWorkflowSection({approvalWorkflow, onPress, currency = CONST.CU
                             iconFill={theme.icon}
                             onPress={onPress}
                             shouldRemoveBackground
-                            helperText={getApprovalLimitDescription({approver, currency, translate, personalDetailsByEmail})}
-                            helperTextStyle={styles.workflowApprovalLimitText}
                         />
                     </View>
                 ))}
diff --git a/src/components/Icon/chunks/expensify-icons.chunk.ts b/src/components/Icon/chunks/expensify-icons.chunk.ts
index 3c2e66df07a6..10cd17ba424d 100644
--- a/src/components/Icon/chunks/expensify-icons.chunk.ts
+++ b/src/components/Icon/chunks/expensify-icons.chunk.ts
@@ -169,7 +169,6 @@ import Phone from '@assets/images/phone.svg';
 import Pin from '@assets/images/pin.svg';
 import Plane from '@assets/images/plane.svg';
 import Play from '@assets/images/play.svg';
-import PlusMinus from '@assets/images/plus-minus.svg';
 import Plus from '@assets/images/plus.svg';
 import Printer from '@assets/images/printer.svg';
 import Profile from '@assets/images/profile.svg';
@@ -372,7 +371,6 @@ const Expensicons = {
     Pin,
     Play,
     Plus,
-    PlusMinus,
     Printer,
     Profile,
     QBOSquare,
diff --git a/src/components/NumberWithSymbolForm.tsx b/src/components/NumberWithSymbolForm.tsx
index 3fdeeb99b425..6c65ad9c04d7 100644
--- a/src/components/NumberWithSymbolForm.tsx
+++ b/src/components/NumberWithSymbolForm.tsx
@@ -1,9 +1,8 @@
 import {useIsFocused} from '@react-navigation/native';
 import type {ForwardedRef} from 'react';
-import React, {useEffect, useImperativeHandle, useRef, useState} from 'react';
+import React, {useCallback, useEffect, useImperativeHandle, useRef, useState} from 'react';
 import type {NativeSyntheticEvent} from 'react-native';
 import {View} from 'react-native';
-import {useMemoizedLazyExpensifyIcons} from '@hooks/useLazyAsset';
 import useLocalize from '@hooks/useLocalize';
 import {useMouseContext} from '@hooks/useMouseContext';
 import usePrevious from '@hooks/usePrevious';
@@ -26,6 +25,7 @@ import CONST from '@src/CONST';
 import BigNumberPad from './BigNumberPad';
 import Button from './Button';
 import FormHelpMessage from './FormHelpMessage';
+import * as Expensicons from './Icon/Expensicons';
 import ScrollView from './ScrollView';
 import TextInput from './TextInput';
 import isTextInputFocused from './TextInput/BaseTextInput/isTextInputFocused';
@@ -84,9 +84,6 @@ type NumberWithSymbolFormProps = {
 
     /** Reference to the outer element */
     ref?: ForwardedRef<BaseTextInputRef>;
-
-    /** Callback when the user presses the submit key (Enter) */
-    onSubmitEditing?: () => void;
 } & Omit<TextInputWithSymbolProps, 'formattedAmount' | 'onAmountChange' | 'placeholder' | 'onSelectionChange' | 'onKeyPress' | 'onMouseDown' | 'onMouseUp'>;
 
 type NumberWithSymbolFormRef = {
@@ -148,29 +145,15 @@ function NumberWithSymbolForm({
     clearNegative,
     ref,
     disabled,
-    onSubmitEditing,
     ...props
 }: NumberWithSymbolFormProps) {
     const styles = useThemeStyles();
     const {toLocaleDigit, numberFormat, translate} = useLocalize();
-    const icons = useMemoizedLazyExpensifyIcons(['DownArrow', 'PlusMinus'] as const);
 
     const textInput = useRef<BaseTextInputRef | null>(null);
     const numberRef = useRef<string | undefined>(undefined);
     const [currentNumber, setCurrentNumber] = useState(typeof number === 'string' ? number : '');
 
-    // sync currentNumber with number prop when it changes externally
-    useEffect(() => {
-        const newNumber = typeof number === 'string' ? number : '';
-
-        if (newNumber === currentNumber || (newNumber && currentNumber && Number(newNumber) === Number(currentNumber))) {
-            return;
-        }
-
-        setCurrentNumber(newNumber);
-        // eslint-disable-next-line react-compiler/react-compiler, react-hooks/exhaustive-deps
-    }, [number]);
-
     const [shouldUpdateSelection, setShouldUpdateSelection] = useState(true);
 
     const isFocused = useIsFocused();
@@ -195,9 +178,9 @@ function NumberWithSymbolForm({
         setMouseUp();
     };
 
-    const clearSelection = () => {
+    const clearSelection = useCallback(() => {
         setSelection({start: selection.end, end: selection.end});
-    };
+    }, [selection.end]);
 
     /**
      * Event occurs when a user presses a mouse button over an DOM element.
@@ -223,36 +206,39 @@ function NumberWithSymbolForm({
      * Sets the selection and the number accordingly to the number passed to the input
      * @param newNumber - Changed number from user input
      */
-    const setNewNumber = (newNumber: string) => {
-        // Remove spaces from the newNumber number because Safari on iOS adds spaces when pasting a copied number
-        // More info: https://github.com/Expensify/App/issues/16974
-        const newNumberWithoutSpaces = stripSpacesFromAmount(newNumber);
-        const rawFinalNumber = newNumberWithoutSpaces.includes('.') ? stripCommaFromAmount(newNumberWithoutSpaces) : replaceCommasWithPeriod(newNumberWithoutSpaces);
-
-        const finalNumber = handleNegativeAmountFlipping(rawFinalNumber, allowFlippingAmount, toggleNegative);
-
-        // Use a shallow copy of selection to trigger setSelection
-        // More info: https://github.com/Expensify/App/issues/16385
-        if (!validateAmount(finalNumber, decimals, maxLength)) {
-            setSelection((prevSelection) => ({...prevSelection}));
-            return;
-        }
-
-        willSelectionBeUpdatedManually.current = true;
-        let hasSelectionBeenSet = false;
-        const strippedNumber = stripCommaFromAmount(finalNumber);
-        numberRef.current = strippedNumber;
-        setCurrentNumber((prevNumber) => {
-            const isForwardDelete = prevNumber.length > strippedNumber.length && forwardDeletePressedRef.current;
-            if (!hasSelectionBeenSet) {
-                hasSelectionBeenSet = true;
-                setSelection((prevSelection) => getNewSelection(prevSelection, isForwardDelete ? strippedNumber.length : prevNumber.length, strippedNumber.length));
-                willSelectionBeUpdatedManually.current = false;
+    const setNewNumber = useCallback(
+        (newNumber: string) => {
+            // Remove spaces from the newNumber number because Safari on iOS adds spaces when pasting a copied number
+            // More info: https://github.com/Expensify/App/issues/16974
+            const newNumberWithoutSpaces = stripSpacesFromAmount(newNumber);
+            const rawFinalNumber = newNumberWithoutSpaces.includes('.') ? stripCommaFromAmount(newNumberWithoutSpaces) : replaceCommasWithPeriod(newNumberWithoutSpaces);
+
+            const finalNumber = handleNegativeAmountFlipping(rawFinalNumber, allowFlippingAmount, toggleNegative);
+
+            // Use a shallow copy of selection to trigger setSelection
+            // More info: https://github.com/Expensify/App/issues/16385
+            if (!validateAmount(finalNumber, decimals, maxLength)) {
+                setSelection((prevSelection) => ({...prevSelection}));
+                return;
             }
-            return strippedNumber;
-        });
-        onInputChange?.(strippedNumber);
-    };
+
+            willSelectionBeUpdatedManually.current = true;
+            let hasSelectionBeenSet = false;
+            const strippedNumber = stripCommaFromAmount(finalNumber);
+            numberRef.current = strippedNumber;
+            setCurrentNumber((prevNumber) => {
+                const isForwardDelete = prevNumber.length > strippedNumber.length && forwardDeletePressedRef.current;
+                if (!hasSelectionBeenSet) {
+                    hasSelectionBeenSet = true;
+                    setSelection((prevSelection) => getNewSelection(prevSelection, isForwardDelete ? strippedNumber.length : prevNumber.length, strippedNumber.length));
+                    willSelectionBeUpdatedManually.current = false;
+                }
+                return strippedNumber;
+            });
+            onInputChange?.(strippedNumber);
+        },
+        [decimals, maxLength, onInputChange, allowFlippingAmount, toggleNegative],
+    );
 
     /**
      * Set a new number number properly formatted, used for the TextInput
@@ -304,34 +290,37 @@ function NumberWithSymbolForm({
      * Update number with number or Backspace pressed for BigNumberPad.
      * Validate new number with decimal number regex up to 6 digits and 2 decimal digit to enable Next button
      */
-    const updateValueNumberPad = (key: string) => {
-        if (shouldUpdateSelection && !isTextInputFocused(textInput)) {
-            textInput.current?.focus();
-        }
-        // Backspace button is pressed
-        if (key === '<' || key === 'Backspace') {
-            if (currentNumber.length > 0) {
-                const selectionStart = selection.start === selection.end ? selection.start - 1 : selection.start;
-                const newNumber = `${currentNumber.substring(0, selectionStart)}${currentNumber.substring(selection.end)}`;
-                setNewNumber(addLeadingZero(newNumber));
+    const updateValueNumberPad = useCallback(
+        (key: string) => {
+            if (shouldUpdateSelection && !isTextInputFocused(textInput)) {
+                textInput.current?.focus();
             }
-            return;
-        }
-        const newNumber = addLeadingZero(`${currentNumber.substring(0, selection.start)}${key}${currentNumber.substring(selection.end)}`);
-        setNewNumber(newNumber);
-    };
+            // Backspace button is pressed
+            if (key === '<' || key === 'Backspace') {
+                if (currentNumber.length > 0) {
+                    const selectionStart = selection.start === selection.end ? selection.start - 1 : selection.start;
+                    const newNumber = `${currentNumber.substring(0, selectionStart)}${currentNumber.substring(selection.end)}`;
+                    setNewNumber(addLeadingZero(newNumber));
+                }
+                return;
+            }
+            const newNumber = addLeadingZero(`${currentNumber.substring(0, selection.start)}${key}${currentNumber.substring(selection.end)}`);
+            setNewNumber(newNumber);
+        },
+        [currentNumber, selection.start, selection.end, shouldUpdateSelection, setNewNumber],
+    );
 
     /**
      * Update long press number, to remove items pressing on <
      *
      * @param value - Changed text from user input
      */
-    const updateLongPressHandlerState = (value: boolean) => {
+    const updateLongPressHandlerState = useCallback((value: boolean) => {
         setShouldUpdateSelection(!value);
         if (!value && !isTextInputFocused(textInput)) {
             textInput.current?.focus();
         }
-    };
+    }, []);
 
     /**
      * Input handler to check for a forward-delete key (or keyboard shortcut) press.
@@ -397,7 +386,6 @@ function NumberWithSymbolForm({
                 autoFocus={props.autoFocus}
                 autoGrowExtraSpace={props.autoGrowExtraSpace}
                 autoGrowMarginSide={props.autoGrowMarginSide}
-                onSubmitEditing={onSubmitEditing}
             />
         );
     }
@@ -484,7 +472,7 @@ function NumberWithSymbolForm({
                             <Button
                                 shouldShowRightIcon
                                 small
-                                iconRight={icons.DownArrow}
+                                iconRight={Expensicons.DownArrow}
                                 onPress={onSymbolButtonPress}
                                 style={styles.minWidth18}
                                 isContentCentered
@@ -509,7 +497,7 @@ function NumberWithSymbolForm({
                     <Button
                         shouldShowRightIcon
                         small
-                        iconRight={icons.DownArrow}
+                        iconRight={Expensicons.DownArrow}
                         onPress={onSymbolButtonPress}
                         style={styles.minWidth18}
                         isContentCentered
@@ -520,7 +508,7 @@ function NumberWithSymbolForm({
                     <Button
                         shouldShowRightIcon
                         small
-                        iconRight={icons.PlusMinus}
+                        iconRight={Expensicons.PlusMinus}
                         onPress={toggleNegative}
                         style={styles.minWidth18}
                         isContentCentered
diff --git a/src/languages/de.ts b/src/languages/de.ts
index eb37cbe58bfb..e3b771387bcb 100644
--- a/src/languages/de.ts
+++ b/src/languages/de.ts
@@ -2317,25 +2317,7 @@ ${amount} für ${merchant} – ${date}`,
     },
     workflowsApproverPage: {
         genericErrorMessage: 'Der Genehmiger konnte nicht geändert werden. Bitte versuche es erneut oder kontaktiere den Support.',
-        title: 'Zur Genehmigung an dieses Mitglied senden:',
-        description: 'Diese Person wird die Ausgaben genehmigen.',
-    },
-    workflowsApprovalLimitPage: {
-        title: 'Genehmiger',
-        header: '(Optional) Möchten Sie ein Genehmigungslimit hinzufügen?',
-        description: ({approverName}: {approverName: string}) =>
-            approverName
-                ? `Fügen Sie einen weiteren Genehmiger hinzu, wenn <strong>${approverName}</strong> Genehmiger ist und der Bericht den folgenden Betrag überschreitet:`
-                : 'Fügen Sie einen weiteren Genehmiger hinzu, wenn der Bericht den folgenden Betrag überschreitet:',
-        reportAmountLabel: 'Berichtsbetrag',
-        additionalApproverLabel: 'Zusätzlicher Genehmiger',
-        skip: 'Überspringen',
-        next: 'Weiter',
-        removeLimit: 'Limit entfernen',
-        enterAmountError: 'Bitte geben Sie einen gültigen Betrag ein',
-        enterApproverError: 'Ein Genehmiger ist erforderlich, wenn Sie ein Berichtslimit festlegen',
-        enterBothError: 'Geben Sie einen Berichtsbetrag und einen zusätzlichen Genehmiger ein',
-        forwardLimitDescription: ({approvalLimit, approverName}: {approvalLimit: string; approverName: string}) => `Berichte über ${approvalLimit} werden an ${approverName} weitergeleitet`,
+        header: 'Zur Genehmigung an dieses Mitglied senden:',
     },
     workflowsPayerPage: {
         title: 'Autorisierter Zahler',
diff --git a/src/languages/en.ts b/src/languages/en.ts
index 0ecf242d0401..d0b2185748ec 100755
--- a/src/languages/en.ts
+++ b/src/languages/en.ts
@@ -2269,25 +2269,7 @@ const translations = {
     },
     workflowsApproverPage: {
         genericErrorMessage: "The approver couldn't be changed. Please try again or contact support.",
-        title: 'Set approver',
-        description: 'This person will approve the expenses.',
-    },
-    workflowsApprovalLimitPage: {
-        title: 'Approver',
-        header: '(Optional) Want to add an approval limit?',
-        description: ({approverName}: {approverName: string}) =>
-            approverName
-                ? `Add another approver when <strong>${approverName}</strong> is approver and report exceeds the amount below:`
-                : 'Add another approver when a report exceeds the amount below:',
-        reportAmountLabel: 'Report amount',
-        additionalApproverLabel: 'Additional approver',
-        skip: 'Skip',
-        next: 'Next',
-        removeLimit: 'Remove limit',
-        enterAmountError: 'Please enter a valid amount',
-        enterApproverError: 'Approver is required when you set a report limit',
-        enterBothError: 'Enter a report amount and additional approver',
-        forwardLimitDescription: ({approvalLimit, approverName}: {approvalLimit: string; approverName: string}) => `Reports above ${approvalLimit} forward to ${approverName}`,
+        header: 'Send to this member for approval:',
     },
     workflowsPayerPage: {
         title: 'Authorized payer',
diff --git a/src/languages/es.ts b/src/languages/es.ts
index 63c7e9c33001..b2d5b2b2b724 100644
--- a/src/languages/es.ts
+++ b/src/languages/es.ts
@@ -1953,25 +1953,7 @@ ${amount} para ${merchant} - ${date}`,
     },
     workflowsApproverPage: {
         genericErrorMessage: 'El aprobador no pudo ser cambiado. Por favor, inténtelo de nuevo o contacte al soporte.',
-        title: 'Establecer aprobador',
-        description: 'Esta persona aprobará los gastos.',
-    },
-    workflowsApprovalLimitPage: {
-        title: 'Aprobador',
-        header: '(Opcional) ¿Quieres añadir un límite de aprobación?',
-        description: ({approverName}: {approverName: string}) =>
-            approverName
-                ? `Añadir otro aprobador cuando <strong>${approverName}</strong> es aprobador y el informe supera el importe indicado:`
-                : 'Añadir otro aprobador cuando el informe supera el importe indicado:',
-        reportAmountLabel: 'Importe del informe',
-        additionalApproverLabel: 'Aprobador adicional',
-        skip: 'Omitir',
-        next: 'Siguiente',
-        removeLimit: 'Eliminar límite',
-        enterAmountError: 'Por favor, introduce un importe válido',
-        enterApproverError: 'Se requiere un aprobador cuando estableces un límite de informe',
-        enterBothError: 'Introduce un importe del informe y un aprobador adicional',
-        forwardLimitDescription: ({approvalLimit, approverName}: {approvalLimit: string; approverName: string}) => `Los informes superiores a ${approvalLimit} se envían a ${approverName}`,
+        header: 'Enviar a este miembro para su aprobación:',
     },
     workflowsPayerPage: {
         title: 'Pagador autorizado',
diff --git a/src/languages/fr.ts b/src/languages/fr.ts
index 67b6b83058c4..0f54c19a2316 100644
--- a/src/languages/fr.ts
+++ b/src/languages/fr.ts
@@ -2319,26 +2319,7 @@ ${amount} pour ${merchant} - ${date}`,
     },
     workflowsApproverPage: {
         genericErrorMessage: 'Le valideur n’a pas pu être modifié. Veuillez réessayer ou contacter l’assistance.',
-        title: 'Définir l’approbateur',
-        description: 'Cette personne approuvera les dépenses.',
-    },
-    workflowsApprovalLimitPage: {
-        title: 'Approbateur',
-        header: "(Optionnel) Voulez-vous ajouter une limite d'approbation ?",
-        description: ({approverName}: {approverName: string}) =>
-            approverName
-                ? `Ajoutez un autre approbateur lorsque <strong>${approverName}</strong> est approbateur et que le rapport dépasse le montant ci-dessous :`
-                : 'Ajoutez un autre approbateur lorsque le rapport dépasse le montant ci-dessous :',
-        reportAmountLabel: 'Montant du rapport',
-        additionalApproverLabel: 'Approbateur supplémentaire',
-        skip: 'Passer',
-        next: 'Suivant',
-        removeLimit: 'Supprimer la limite',
-        enterAmountError: 'Veuillez entrer un montant valide',
-        enterApproverError: 'Un approbateur est requis lorsque vous définissez une limite de rapport',
-        enterBothError: 'Entrez un montant de rapport et un approbateur supplémentaire',
-        forwardLimitDescription: ({approvalLimit, approverName}: {approvalLimit: string; approverName: string}) =>
-            `Les rapports supérieurs à ${approvalLimit} sont transférés à ${approverName}`,
+        header: 'Envoyer à ce membre pour approbation :',
     },
     workflowsPayerPage: {
         title: 'Payeur autorisé',
diff --git a/src/languages/it.ts b/src/languages/it.ts
index 8f84945e384e..4438eadd1340 100644
--- a/src/languages/it.ts
+++ b/src/languages/it.ts
@@ -2308,26 +2308,7 @@ ${amount} per ${merchant} - ${date}`,
     },
     workflowsApproverPage: {
         genericErrorMessage: "Non è stato possibile modificare l'approvatore. Riprova o contatta l'assistenza.",
-        title: 'Invia a questo membro per approvazione:',
-        description: 'Questa persona approverà le spese.',
-    },
-    workflowsApprovalLimitPage: {
-        title: 'Approvatore',
-        header: '(Opzionale) Vuoi aggiungere un limite di approvazione?',
-        description: ({approverName}: {approverName: string}) =>
-            approverName
-                ? `Aggiungi un altro approvatore quando <strong>${approverName}</strong> è approvatore e il report supera l'importo seguente:`
-                : "Aggiungi un altro approvatore quando il report supera l'importo seguente:",
-        reportAmountLabel: 'Importo del report',
-        additionalApproverLabel: 'Approvatore aggiuntivo',
-        skip: 'Salta',
-        next: 'Avanti',
-        removeLimit: 'Rimuovi limite',
-        enterAmountError: 'Inserisci un importo valido',
-        enterApproverError: 'Un approvatore è richiesto quando imposti un limite di report',
-        enterBothError: 'Inserisci un importo del report e un approvatore aggiuntivo',
-        forwardLimitDescription: ({approvalLimit, approverName}: {approvalLimit: string; approverName: string}) =>
-            `I report superiori a ${approvalLimit} vengono inoltrati a ${approverName}`,
+        header: 'Invia a questo membro per approvazione:',
     },
     workflowsPayerPage: {
         title: 'Pagatore autorizzato',
diff --git a/src/languages/ja.ts b/src/languages/ja.ts
index 8bb2cee78dd6..6c99f8411c15 100644
--- a/src/languages/ja.ts
+++ b/src/languages/ja.ts
@@ -2300,25 +2300,7 @@ ${merchant} への ${amount}（${date}）`,
     },
     workflowsApproverPage: {
         genericErrorMessage: '承認者を変更できませんでした。もう一度お試しいただくか、サポートにお問い合わせください。',
-        title: 'このメンバーに承認用として送信:',
-        description: 'この人が経費を承認します。',
-    },
-    workflowsApprovalLimitPage: {
-        title: '承認者',
-        header: '（オプション）承認限度額を追加しますか？',
-        description: ({approverName}: {approverName: string}) =>
-            approverName
-                ? `<strong>${approverName}</strong>が承認者で、レポートが以下の金額を超える場合に別の承認者を追加します：`
-                : 'レポートが以下の金額を超える場合に別の承認者を追加します：',
-        reportAmountLabel: 'レポート金額',
-        additionalApproverLabel: '追加の承認者',
-        skip: 'スキップ',
-        next: '次へ',
-        removeLimit: '制限を削除',
-        enterAmountError: '有効な金額を入力してください',
-        enterApproverError: 'レポート制限を設定する場合は承認者が必要です',
-        enterBothError: 'レポート金額と追加の承認者を入力してください',
-        forwardLimitDescription: ({approvalLimit, approverName}: {approvalLimit: string; approverName: string}) => `${approvalLimit}を超えるレポートは${approverName}に転送されます`,
+        header: 'このメンバーに承認用として送信:',
     },
     workflowsPayerPage: {
         title: '認可された支払担当者',
diff --git a/src/languages/nl.ts b/src/languages/nl.ts
index c62880f4dab6..a0a0b2f776f7 100644
--- a/src/languages/nl.ts
+++ b/src/languages/nl.ts
@@ -2306,26 +2306,7 @@ ${amount} voor ${merchant} - ${date}`,
     },
     workflowsApproverPage: {
         genericErrorMessage: 'De fiatteur kon niet worden gewijzigd. Probeer het opnieuw of neem contact op met support.',
-        title: 'Naar dit lid sturen ter goedkeuring:',
-        description: 'Deze persoon zal de uitgaven goedkeuren.',
-    },
-    workflowsApprovalLimitPage: {
-        title: 'Goedkeurder',
-        header: '(Optioneel) Wilt u een goedkeuringslimiet toevoegen?',
-        description: ({approverName}: {approverName: string}) =>
-            approverName
-                ? `Voeg een andere goedkeurder toe wanneer <strong>${approverName}</strong> goedkeurder is en het rapport het onderstaande bedrag overschrijdt:`
-                : 'Voeg een andere goedkeurder toe wanneer het rapport het onderstaande bedrag overschrijdt:',
-        reportAmountLabel: 'Rapportbedrag',
-        additionalApproverLabel: 'Extra goedkeurder',
-        skip: 'Overslaan',
-        next: 'Volgende',
-        removeLimit: 'Limiet verwijderen',
-        enterAmountError: 'Voer een geldig bedrag in',
-        enterApproverError: 'Een goedkeurder is vereist wanneer u een rapportlimiet instelt',
-        enterBothError: 'Voer een rapportbedrag en een extra goedkeurder in',
-        forwardLimitDescription: ({approvalLimit, approverName}: {approvalLimit: string; approverName: string}) =>
-            `Rapporten boven ${approvalLimit} worden doorgestuurd naar ${approverName}`,
+        header: 'Naar dit lid sturen ter goedkeuring:',
     },
     workflowsPayerPage: {
         title: 'Geautoriseerde betaler',
diff --git a/src/languages/pl.ts b/src/languages/pl.ts
index ede8d6ea8749..5f19a0388392 100644
--- a/src/languages/pl.ts
+++ b/src/languages/pl.ts
@@ -2303,25 +2303,7 @@ ${amount} dla ${merchant} - ${date}`,
     },
     workflowsApproverPage: {
         genericErrorMessage: 'Nie można było zmienić osoby zatwierdzającej. Spróbuj ponownie lub skontaktuj się z pomocą techniczną.',
-        title: 'Wyślij do tego członka do zatwierdzenia:',
-        description: 'Ta osoba zatwierdzi wydatki.',
-    },
-    workflowsApprovalLimitPage: {
-        title: 'Zatwierdzający',
-        header: '(Opcjonalnie) Czy chcesz dodać limit zatwierdzenia?',
-        description: ({approverName}: {approverName: string}) =>
-            approverName
-                ? `Dodaj innego zatwierdzającego, gdy <strong>${approverName}</strong> jest zatwierdzającym, a raport przekracza poniższą kwotę:`
-                : 'Dodaj innego zatwierdzającego, gdy raport przekracza poniższą kwotę:',
-        reportAmountLabel: 'Kwota raportu',
-        additionalApproverLabel: 'Dodatkowy zatwierdzający',
-        skip: 'Pomiń',
-        next: 'Dalej',
-        removeLimit: 'Usuń limit',
-        enterAmountError: 'Wprowadź prawidłową kwotę',
-        enterApproverError: 'Zatwierdzający jest wymagany, gdy ustawisz limit raportu',
-        enterBothError: 'Wprowadź kwotę raportu i dodatkowego zatwierdzającego',
-        forwardLimitDescription: ({approvalLimit, approverName}: {approvalLimit: string; approverName: string}) => `Raporty powyżej ${approvalLimit} są przekazywane do ${approverName}`,
+        header: 'Wyślij do tego członka do zatwierdzenia:',
     },
     workflowsPayerPage: {
         title: 'Upoważniony płatnik',
diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts
index fdbfcb33a469..77b8ab2ccbf6 100644
--- a/src/languages/pt-BR.ts
+++ b/src/languages/pt-BR.ts
@@ -2303,26 +2303,7 @@ ${amount} para ${merchant} - ${date}`,
     },
     workflowsApproverPage: {
         genericErrorMessage: 'O aprovador não pôde ser alterado. Tente novamente ou entre em contato com o suporte.',
-        title: 'Enviar para este membro para aprovação:',
-        description: 'Esta pessoa aprovará as despesas.',
-    },
-    workflowsApprovalLimitPage: {
-        title: 'Aprovador',
-        header: '(Opcional) Deseja adicionar um limite de aprovação?',
-        description: ({approverName}: {approverName: string}) =>
-            approverName
-                ? `Adicione outro aprovador quando <strong>${approverName}</strong> for aprovador e o relatório exceder o valor abaixo:`
-                : 'Adicione outro aprovador quando o relatório exceder o valor abaixo:',
-        reportAmountLabel: 'Valor do relatório',
-        additionalApproverLabel: 'Aprovador adicional',
-        skip: 'Pular',
-        next: 'Próximo',
-        removeLimit: 'Remover limite',
-        enterAmountError: 'Por favor, insira um valor válido',
-        enterApproverError: 'Um aprovador é necessário quando você define um limite de relatório',
-        enterBothError: 'Insira um valor do relatório e um aprovador adicional',
-        forwardLimitDescription: ({approvalLimit, approverName}: {approvalLimit: string; approverName: string}) =>
-            `Relatórios acima de ${approvalLimit} são encaminhados para ${approverName}`,
+        header: 'Enviar para este membro para aprovação:',
     },
     workflowsPayerPage: {
         title: 'Pagador autorizado',
diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts
index 163e5d0ab72d..fce0f6e7854b 100644
--- a/src/languages/zh-hans.ts
+++ b/src/languages/zh-hans.ts
@@ -2271,23 +2271,7 @@ ${amount}，商户：${merchant} - ${date}`,
     },
     workflowsApproverPage: {
         genericErrorMessage: '无法更改审批人。请重试或联系支持。',
-        title: '发送给该成员以供审批：',
-        description: '此人将审批费用。',
-    },
-    workflowsApprovalLimitPage: {
-        title: '审批人',
-        header: '（可选）是否添加审批限额？',
-        description: ({approverName}: {approverName: string}) =>
-            approverName ? `当<strong>${approverName}</strong>为审批人且报告超过以下金额时，添加另一位审批人：` : '当报告超过以下金额时，添加另一位审批人：',
-        reportAmountLabel: '报告金额',
-        additionalApproverLabel: '额外审批人',
-        skip: '跳过',
-        next: '下一步',
-        removeLimit: '移除限额',
-        enterAmountError: '请输入有效金额',
-        enterApproverError: '设置报告限额时需要审批人',
-        enterBothError: '请输入报告金额和额外审批人',
-        forwardLimitDescription: ({approvalLimit, approverName}: {approvalLimit: string; approverName: string}) => `超过${approvalLimit}的报告将转发给${approverName}`,
+        header: '发送给该成员以供审批：',
     },
     workflowsPayerPage: {
         title: '授权付款人',
diff --git a/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx b/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx
index 12348a6f71af..6e93668bfa70 100644
--- a/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx
+++ b/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx
@@ -415,12 +415,6 @@ const SettingsModalStackNavigator = createModalStackNavigator<SettingsNavigatorP
     [SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_EXPENSES_FROM]: () =>
         require<ReactComponentModule>('../../../../pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsExpensesFromPage').default,
     [SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_APPROVER]: () => require<ReactComponentModule>('../../../../pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsApproverPage').default,
-    [SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_APPROVER_CHANGE]: () =>
-        require<ReactComponentModule>('../../../../pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsApproverPage').default,
-    [SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_APPROVAL_LIMIT]: () =>
-        require<ReactComponentModule>('../../../../pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsApprovalLimitPage').default,
-    [SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_OVER_LIMIT_APPROVER]: () =>
-        require<ReactComponentModule>('../../../../pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsOverLimitApproverPage').default,
     [SCREENS.WORKSPACE.INVITE_MESSAGE]: () => require<ReactComponentModule>('../../../../pages/workspace/WorkspaceInviteMessagePage').default,
     [SCREENS.WORKSPACE.INVITE_MESSAGE_ROLE]: () => require<ReactComponentModule>('../../../../pages/workspace/WorkspaceInviteMessageRolePage').default,
     [SCREENS.WORKSPACE.WORKFLOWS_PAYER]: () => require<ReactComponentModule>('../../../../pages/workspace/workflows/WorkspaceWorkflowsPayerPage').default,
diff --git a/src/libs/Navigation/linkingConfig/RELATIONS/WORKSPACE_TO_RHP.ts b/src/libs/Navigation/linkingConfig/RELATIONS/WORKSPACE_TO_RHP.ts
index 63d7a9f13f6e..5dee0b252dd9 100755
--- a/src/libs/Navigation/linkingConfig/RELATIONS/WORKSPACE_TO_RHP.ts
+++ b/src/libs/Navigation/linkingConfig/RELATIONS/WORKSPACE_TO_RHP.ts
@@ -30,9 +30,6 @@ const WORKSPACE_TO_RHP: Partial<Record<keyof WorkspaceSplitNavigatorParamList, s
         SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_EDIT,
         SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_EXPENSES_FROM,
         SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_APPROVER,
-        SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_APPROVER_CHANGE,
-        SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_APPROVAL_LIMIT,
-        SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_OVER_LIMIT_APPROVER,
         SCREENS.WORKSPACE.WORKFLOWS_AUTO_REPORTING_FREQUENCY,
         SCREENS.WORKSPACE.WORKFLOWS_AUTO_REPORTING_MONTHLY_OFFSET,
         SCREENS.WORKSPACE.WORKFLOWS_PAYER,
diff --git a/src/libs/Navigation/linkingConfig/config.ts b/src/libs/Navigation/linkingConfig/config.ts
index 1862bb8fe38a..4260e120d7ec 100644
--- a/src/libs/Navigation/linkingConfig/config.ts
+++ b/src/libs/Navigation/linkingConfig/config.ts
@@ -810,15 +810,6 @@ const config: LinkingOptions<RootNavigatorParamList>['config'] = {
                         [SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_APPROVER]: {
                             path: ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_APPROVER.route,
                         },
-                        [SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_APPROVER_CHANGE]: {
-                            path: ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_APPROVER_CHANGE.route,
-                        },
-                        [SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_APPROVAL_LIMIT]: {
-                            path: ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_APPROVAL_LIMIT.route,
-                        },
-                        [SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_OVER_LIMIT_APPROVER]: {
-                            path: ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_OVER_LIMIT_APPROVER.route,
-                        },
                         [SCREENS.WORKSPACE.INVITE_MESSAGE]: {
                             path: ROUTES.WORKSPACE_INVITE_MESSAGE.route,
                         },
diff --git a/src/libs/Navigation/types.ts b/src/libs/Navigation/types.ts
index d9f448432073..d111aea9c144 100644
--- a/src/libs/Navigation/types.ts
+++ b/src/libs/Navigation/types.ts
@@ -2384,22 +2384,14 @@ type WorkspaceSplitNavigatorParamList = {
     };
     [SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_EXPENSES_FROM]: {
         policyID: string;
+        // eslint-disable-next-line no-restricted-syntax -- `backTo` usages in this file are legacy. Do not add new `backTo` params to screens. See contributingGuides/NAVIGATION.md
+        backTo?: Routes;
     };
     [SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_APPROVER]: {
         policyID: string;
         approverIndex: number;
-    };
-    [SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_APPROVER_CHANGE]: {
-        policyID: string;
-        approverIndex: number;
-    };
-    [SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_APPROVAL_LIMIT]: {
-        policyID: string;
-        approverIndex: number;
-    };
-    [SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_OVER_LIMIT_APPROVER]: {
-        policyID: string;
-        approverIndex: number;
+        // eslint-disable-next-line no-restricted-syntax -- `backTo` usages in this file are legacy. Do not add new `backTo` params to screens. See contributingGuides/NAVIGATION.md
+        backTo?: Routes;
     };
     [SCREENS.WORKSPACE.WORKFLOWS_AUTO_REPORTING_FREQUENCY]: {
         policyID: string;
diff --git a/src/libs/WorkflowUtils.ts b/src/libs/WorkflowUtils.ts
index c289ca530ca3..77417d79335e 100644
--- a/src/libs/WorkflowUtils.ts
+++ b/src/libs/WorkflowUtils.ts
@@ -1,4 +1,3 @@
-import {Str} from 'expensify-common';
 import lodashMapKeys from 'lodash/mapKeys';
 import type {OnyxEntry} from 'react-native-onyx';
 import type {ValueOf} from 'type-fest';
@@ -12,7 +11,6 @@ import type PersonalDetails from '@src/types/onyx/PersonalDetails';
 import type Policy from '@src/types/onyx/Policy';
 import type {PolicyEmployeeList} from '@src/types/onyx/PolicyEmployee';
 import {isBankAccountPartiallySetup} from './BankAccountUtils';
-import {convertToDisplayString} from './CurrencyUtils';
 import {getDefaultApprover} from './PolicyUtils';
 
 const INITIAL_APPROVAL_WORKFLOW: ApprovalWorkflowOnyx = {
@@ -23,7 +21,6 @@ const INITIAL_APPROVAL_WORKFLOW: ApprovalWorkflowOnyx = {
     isDefault: false,
     action: CONST.APPROVAL_WORKFLOW.ACTION.CREATE,
     originalApprovers: [],
-    isInitialFlow: true,
 };
 
 type GetApproversParams = {
@@ -56,15 +53,12 @@ function calculateApprovers({employees, firstEmail, personalDetailsByEmail}: Get
         }
 
         const isCircularReference = currentApproverEmails.has(nextEmail);
-        const employee = employees[nextEmail];
         approvers.push({
             email: nextEmail,
-            forwardsTo: employee.forwardsTo,
+            forwardsTo: employees[nextEmail].forwardsTo,
             avatar: personalDetailsByEmail[nextEmail]?.avatar,
             displayName: personalDetailsByEmail[nextEmail]?.displayName ?? nextEmail,
             isCircularReference,
-            approvalLimit: employee.approvalLimit,
-            overLimitForwardsTo: employee.overLimitForwardsTo,
         });
 
         // If we've already seen this approver, break to prevent infinite loop
@@ -262,30 +256,19 @@ function convertApprovalWorkflowToPolicyEmployees({
     for (const [index, approver] of approvalWorkflow.approvers.entries()) {
         const nextApprover = approvalWorkflow.approvers.at(index + 1);
         const forwardsTo = type === CONST.APPROVAL_WORKFLOW.TYPE.REMOVE ? '' : (nextApprover?.email ?? '');
-        const approvalLimit = type === CONST.APPROVAL_WORKFLOW.TYPE.REMOVE ? null : approver.approvalLimit;
-        const overLimitForwardsTo = type === CONST.APPROVAL_WORKFLOW.TYPE.REMOVE ? '' : (approver.overLimitForwardsTo ?? '');
 
-        // For every approver, we check if the forwardsTo, approvalLimit, or overLimitForwardsTo fields have changed.
-        const previousEmployee = previousEmployeeList[approver.email];
-        const forwardsToChanged = previousEmployee?.forwardsTo !== forwardsTo;
-        const approvalLimitChanged = previousEmployee?.approvalLimit !== approvalLimit;
-        const overLimitForwardsToChanged = previousEmployee?.overLimitForwardsTo !== overLimitForwardsTo;
-
-        if (!forwardsToChanged && !approvalLimitChanged && !overLimitForwardsToChanged) {
+        // For every approver, we check if the forwardsTo field has changed.
+        // If it has, we update the employee list with the new forwardsTo value.
+        if (previousEmployeeList[approver.email]?.forwardsTo === forwardsTo) {
             continue;
         }
 
-        const previousPendingAction = previousEmployee?.pendingAction;
         updatedEmployeeList[approver.email] = {
             email: approver.email,
             forwardsTo,
-            ...(approvalLimitChanged ? {approvalLimit} : {}),
-            ...(overLimitForwardsToChanged ? {overLimitForwardsTo} : {}),
-            pendingAction: previousPendingAction === CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE ? previousPendingAction : pendingAction,
+            pendingAction,
             pendingFields: {
-                ...(forwardsToChanged ? {forwardsTo: pendingAction} : {}),
-                ...(approvalLimitChanged ? {approvalLimit: pendingAction} : {}),
-                ...(overLimitForwardsToChanged ? {overLimitForwardsTo: pendingAction} : {}),
+                forwardsTo: pendingAction,
             },
         };
     }
@@ -463,36 +446,10 @@ function getEligibleExistingBusinessBankAccounts(bankAccountList: BankAccountLis
     });
 }
 
-type GetApprovalLimitDescriptionParams = {
-    approver: Approver | undefined;
-    currency: string;
-    translate: LocaleContextProps['translate'];
-    personalDetailsByEmail: PersonalDetailsList | undefined;
-};
-
-/**
- * Get the approval limit description for an approver (e.g., "Reports above $1,000 forward to John Doe")
- */
-function getApprovalLimitDescription({approver, currency, translate, personalDetailsByEmail}: GetApprovalLimitDescriptionParams): string | undefined {
-    if (approver?.approvalLimit == null || !approver?.overLimitForwardsTo) {
-        return undefined;
-    }
-
-    const formattedAmount = convertToDisplayString(approver.approvalLimit, currency);
-    const overLimitApproverDetails = personalDetailsByEmail?.[approver.overLimitForwardsTo];
-    const approverDisplayName = Str.removeSMSDomain(overLimitApproverDetails?.displayName ?? approver.overLimitForwardsTo);
-
-    return translate('workflowsApprovalLimitPage.forwardLimitDescription', {
-        approvalLimit: formattedAmount,
-        approverName: approverDisplayName,
-    });
-}
-
 export {
     calculateApprovers,
     convertPolicyEmployeesToApprovalWorkflows,
     convertApprovalWorkflowToPolicyEmployees,
-    getApprovalLimitDescription,
     getEligibleExistingBusinessBankAccounts,
     INITIAL_APPROVAL_WORKFLOW,
     updateWorkflowDataOnApproverRemoval,
diff --git a/src/libs/actions/Workflow.ts b/src/libs/actions/Workflow.ts
index 6df686039427..5e5435820422 100644
--- a/src/libs/actions/Workflow.ts
+++ b/src/libs/actions/Workflow.ts
@@ -226,19 +226,7 @@ function setApprovalWorkflowApprover({approver, approverIndex, currentApprovalWo
     // Check if the approver forwards to other approvers and add them to the list
     if (policy.employeeList[approver.email]?.forwardsTo) {
         const additionalApprovers = calculateApprovers({employees: policy.employeeList, firstEmail: approver.email, personalDetailsByEmail});
-
         approvers.splice(approverIndex, approvers.length, ...additionalApprovers);
-
-        // Preserve the new approvalLimit and overLimitForwardsTo values that were passed in,
-        // since calculateApprovers reads from stale policy data
-        const existingApprover = approvers.at(approverIndex);
-        if (existingApprover) {
-            approvers[approverIndex] = {
-                ...existingApprover,
-                approvalLimit: approver.approvalLimit,
-                overLimitForwardsTo: approver.overLimitForwardsTo,
-            };
-        }
     }
 
     // Always clear the additional approver error when an approver is added
@@ -283,11 +271,6 @@ function clearApprovalWorkflowApprovers() {
     Onyx.merge(ONYXKEYS.APPROVAL_WORKFLOW, {approvers: []});
 }
 
-/** Set whether the user is in the initial creation flow */
-function setApprovalWorkflowIsInitialFlow(isInitialFlow: boolean) {
-    Onyx.merge(ONYXKEYS.APPROVAL_WORKFLOW, {isInitialFlow});
-}
-
 function setApprovalWorkflow(approvalWorkflow: NullishDeep<ApprovalWorkflowOnyx>) {
     Onyx.set(ONYXKEYS.APPROVAL_WORKFLOW, approvalWorkflow);
 }
@@ -339,5 +322,4 @@ export {
     clearApprovalWorkflowApprovers,
     clearApprovalWorkflow,
     validateApprovalWorkflow,
-    setApprovalWorkflowIsInitialFlow,
 };
diff --git a/src/pages/workspace/withPolicy.tsx b/src/pages/workspace/withPolicy.tsx
index 457c593100d8..d7ac368ecb9c 100644
--- a/src/pages/workspace/withPolicy.tsx
+++ b/src/pages/workspace/withPolicy.tsx
@@ -29,9 +29,6 @@ type PolicyRouteName =
     | typeof SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_EDIT
     | typeof SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_EXPENSES_FROM
     | typeof SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_APPROVER
-    | typeof SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_APPROVER_CHANGE
-    | typeof SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_APPROVAL_LIMIT
-    | typeof SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_OVER_LIMIT_APPROVER
     | typeof SCREENS.WORKSPACE.WORKFLOWS_AUTO_REPORTING_MONTHLY_OFFSET
     | typeof SCREENS.WORKSPACE.WORKFLOWS_AUTO_REPORTING_FREQUENCY
     | typeof SCREENS.WORKSPACE.MEMBER_DETAILS
diff --git a/src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx b/src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx
index 1788c8690606..d492839401ff 100644
--- a/src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx
+++ b/src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx
@@ -265,7 +265,6 @@ function WorkspaceWorkflowsPage({policy, route}: WorkspaceWorkflowsPageProps) {
                                 <ApprovalWorkflowSection
                                     approvalWorkflow={workflow}
                                     onPress={() => Navigation.navigate(ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_EDIT.getRoute(route.params.policyID, workflow.approvers.at(0)?.email ?? ''))}
-                                    currency={policy?.outputCurrency}
                                 />
                             </OfflineWithFeedback>
                         ))}
diff --git a/src/pages/workspace/workflows/approvals/ApprovalWorkflowEditor.tsx b/src/pages/workspace/workflows/approvals/ApprovalWorkflowEditor.tsx
index 7615000f2f3f..9c69fe92477e 100644
--- a/src/pages/workspace/workflows/approvals/ApprovalWorkflowEditor.tsx
+++ b/src/pages/workspace/workflows/approvals/ApprovalWorkflowEditor.tsx
@@ -12,16 +12,12 @@ import OfflineWithFeedback from '@components/OfflineWithFeedback';
 import ScrollView from '@components/ScrollView';
 import Text from '@components/Text';
 import useLocalize from '@hooks/useLocalize';
-import useOnyx from '@hooks/useOnyx';
 import useThemeStyles from '@hooks/useThemeStyles';
 import Navigation from '@libs/Navigation/Navigation';
 import {sortAlphabetically} from '@libs/OptionsListUtils';
 import {isControlPolicy} from '@libs/PolicyUtils';
-import {getApprovalLimitDescription} from '@libs/WorkflowUtils';
 import CONST from '@src/CONST';
-import ONYXKEYS from '@src/ONYXKEYS';
 import ROUTES from '@src/ROUTES';
-import {personalDetailsByEmailSelector} from '@src/selectors/PersonalDetails';
 import type {ApprovalWorkflowOnyx, Policy} from '@src/types/onyx';
 import type {Approver} from '@src/types/onyx/ApprovalWorkflow';
 import type {PendingAction} from '@src/types/onyx/OnyxCommon';
@@ -46,12 +42,7 @@ type ApprovalWorkflowEditorProps = {
 function ApprovalWorkflowEditor({approvalWorkflow, removeApprovalWorkflow, policy, policyID, ref}: ApprovalWorkflowEditorProps) {
     const styles = useThemeStyles();
     const {translate, toLocaleOrdinal, localeCompare} = useLocalize();
-    const [personalDetailsByEmail] = useOnyx(ONYXKEYS.PERSONAL_DETAILS_LIST, {
-        canBeMissing: true,
-        selector: personalDetailsByEmailSelector,
-    });
     const approverCount = approvalWorkflow.approvers.length;
-    const currency = policy?.outputCurrency ?? CONST.CURRENCY.USD;
 
     const approverDescription = useCallback(
         (index: number) => (approverCount > 1 ? `${toLocaleOrdinal(index + 1, true)} ${translate('workflowsPage.approver').toLowerCase()}` : `${translate('workflowsPage.approver')}`),
@@ -107,13 +98,15 @@ function ApprovalWorkflowEditor({approvalWorkflow, removeApprovalWorkflow, polic
         [approvalWorkflow.approvers, approvalWorkflow.errors, translate],
     );
 
+    const editMembers = useCallback(() => {
+        const backTo = approvalWorkflow.action === CONST.APPROVAL_WORKFLOW.ACTION.CREATE ? ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_NEW.getRoute(policyID) : undefined;
+        Navigation.navigate(ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_EXPENSES_FROM.getRoute(policyID, backTo));
+    }, [approvalWorkflow.action, policyID]);
+
     const editApprover = useCallback(
         (approverIndex: number) => {
-            if (approvalWorkflow.action === CONST.APPROVAL_WORKFLOW.ACTION.CREATE) {
-                Navigation.navigate(ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_APPROVER.getRoute(policyID, approverIndex));
-            } else {
-                Navigation.navigate(ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_APPROVAL_LIMIT.getRoute(policyID, approverIndex));
-            }
+            const backTo = approvalWorkflow.action === CONST.APPROVAL_WORKFLOW.ACTION.CREATE ? ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_NEW.getRoute(policyID) : undefined;
+            Navigation.navigate(ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_APPROVER.getRoute(policyID, approverIndex, backTo));
         },
         [approvalWorkflow.action, policyID],
     );
@@ -130,7 +123,7 @@ function ApprovalWorkflowEditor({approvalWorkflow, removeApprovalWorkflow, polic
             );
             return;
         }
-        Navigation.navigate(ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_APPROVER.getRoute(policyID, approverCount));
+        Navigation.navigate(ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_APPROVER.getRoute(policyID, approverCount, ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_NEW.getRoute(policyID)));
     }, [approverCount, policy, policyID]);
 
     return (
@@ -150,7 +143,7 @@ function ApprovalWorkflowEditor({approvalWorkflow, removeApprovalWorkflow, polic
                     numberOfLinesTitle={4}
                     description={translate('workflowsExpensesFromPage.title')}
                     descriptionTextStyle={!!members && styles.textLabelSupportingNormal}
-                    onPress={() => Navigation.navigate(ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_EXPENSES_FROM.getRoute(policyID))}
+                    onPress={editMembers}
                     wrapperStyle={[styles.sectionMenuItemTopDescription]}
                     errorText={approvalWorkflow?.errors?.members ? translate(approvalWorkflow.errors.members) : undefined}
                     brickRoadIndicator={approvalWorkflow?.errors?.members ? CONST.BRICK_ROAD_INDICATOR_STATUS.ERROR : undefined}
@@ -163,7 +156,7 @@ function ApprovalWorkflowEditor({approvalWorkflow, removeApprovalWorkflow, polic
                     const hintText =
                         !errorText && approvalWorkflow.usedApproverEmails.some((approverEmail) => approverEmail === approver?.email)
                             ? translate('workflowsPage.approverInMultipleWorkflows')
-                            : getApprovalLimitDescription({approver, currency, translate, personalDetailsByEmail});
+                            : undefined;
 
                     return (
                         <OfflineWithFeedback
diff --git a/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsApprovalLimitPage.tsx b/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsApprovalLimitPage.tsx
deleted file mode 100644
index d4deec335897..000000000000
--- a/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsApprovalLimitPage.tsx
+++ /dev/null
@@ -1,295 +0,0 @@
-import {Str} from 'expensify-common';
-import React, {useState} from 'react';
-import {View} from 'react-native';
-import AmountForm from '@components/AmountForm';
-import FullPageNotFoundView from '@components/BlockingViews/FullPageNotFoundView';
-import Button from '@components/Button';
-import HeaderWithBackButton from '@components/HeaderWithBackButton';
-import MenuItem from '@components/MenuItem';
-import MenuItemWithTopDescription from '@components/MenuItemWithTopDescription';
-import RenderHTML from '@components/RenderHTML';
-import ScreenWrapper from '@components/ScreenWrapper';
-import ScrollView from '@components/ScrollView';
-import Text from '@components/Text';
-import useBottomSafeSafeAreaPaddingStyle from '@hooks/useBottomSafeSafeAreaPaddingStyle';
-import {useMemoizedLazyExpensifyIcons} from '@hooks/useLazyAsset';
-import useLocalize from '@hooks/useLocalize';
-import useOnyx from '@hooks/useOnyx';
-import useThemeStyles from '@hooks/useThemeStyles';
-import {convertToBackendAmount, convertToFrontendAmountAsString} from '@libs/CurrencyUtils';
-import Navigation from '@libs/Navigation/Navigation';
-import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types';
-import type {WorkspaceSplitNavigatorParamList} from '@libs/Navigation/types';
-import {goBackFromInvalidPolicy, isPendingDeletePolicy, isPolicyAdmin} from '@libs/PolicyUtils';
-import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper';
-import type {WithPolicyAndFullscreenLoadingProps} from '@pages/workspace/withPolicyAndFullscreenLoading';
-import withPolicyAndFullscreenLoading from '@pages/workspace/withPolicyAndFullscreenLoading';
-import {clearApprovalWorkflowApprover, setApprovalWorkflowApprover, setApprovalWorkflowIsInitialFlow} from '@userActions/Workflow';
-import CONST from '@src/CONST';
-import ONYXKEYS from '@src/ONYXKEYS';
-import ROUTES from '@src/ROUTES';
-import type SCREENS from '@src/SCREENS';
-import {personalDetailsByEmailSelector} from '@src/selectors/PersonalDetails';
-import type {Approver} from '@src/types/onyx/ApprovalWorkflow';
-import {isEmptyObject} from '@src/types/utils/EmptyObject';
-
-type WorkspaceWorkflowsApprovalsApprovalLimitPageProps = WithPolicyAndFullscreenLoadingProps &
-    PlatformStackScreenProps<WorkspaceSplitNavigatorParamList, typeof SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_APPROVAL_LIMIT>;
-
-function WorkspaceWorkflowsApprovalsApprovalLimitPage({policy, isLoadingReportData = true, route}: WorkspaceWorkflowsApprovalsApprovalLimitPageProps) {
-    const styles = useThemeStyles();
-    const {translate} = useLocalize();
-    const icons = useMemoizedLazyExpensifyIcons(['Trashcan'] as const);
-    const [approvalWorkflow] = useOnyx(ONYXKEYS.APPROVAL_WORKFLOW, {canBeMissing: true});
-    const [personalDetailsByEmail] = useOnyx(ONYXKEYS.PERSONAL_DETAILS_LIST, {
-        canBeMissing: true,
-        selector: personalDetailsByEmailSelector,
-    });
-
-    const policyID = route.params.policyID;
-    const approverIndex = Number(route.params.approverIndex) || 0;
-    const isEditFlow = approvalWorkflow?.action === CONST.APPROVAL_WORKFLOW.ACTION.EDIT;
-    const currentApprover = approvalWorkflow?.approvers?.[approverIndex];
-    const currency = policy?.outputCurrency ?? CONST.CURRENCY.USD;
-
-    const selectedApproverEmail = currentApprover?.overLimitForwardsTo ?? '';
-
-    const defaultApprovalLimit = currentApprover?.approvalLimit ? convertToFrontendAmountAsString(currentApprover.approvalLimit, currency) : '';
-
-    const [editedApprovalLimit, setEditedApprovalLimit] = useState<string | null>(null);
-    const [hasSubmitted, setHasSubmitted] = useState(false);
-
-    const approvalLimit = editedApprovalLimit ?? defaultApprovalLimit;
-
-    const selectedApproverPersonalDetails = selectedApproverEmail ? personalDetailsByEmail?.[selectedApproverEmail] : undefined;
-    const selectedApproverDisplayName = selectedApproverEmail ? Str.removeSMSDomain(selectedApproverPersonalDetails?.displayName ?? selectedApproverEmail) : '';
-
-    // eslint-disable-next-line rulesdir/no-negated-variables
-    const shouldShowNotFoundView = (isEmptyObject(policy) && !isLoadingReportData) || !isPolicyAdmin(policy) || isPendingDeletePolicy(policy);
-
-    const approverDisplayName = currentApprover ? Str.removeSMSDomain(currentApprover.displayName) : '';
-    const isApproverSelected = isEditFlow ? approverDisplayName.length > 0 : true;
-    const areLimitFieldsDisabled = isEditFlow && !isApproverSelected;
-
-    const hasAmount = approvalLimit.length > 0 && Number(approvalLimit) > 0;
-    const hasApprover = selectedApproverEmail.length > 0;
-    const bothEmpty = !hasAmount && !hasApprover;
-    const onlyAmountEmpty = !hasAmount && hasApprover;
-    const onlyApproverEmpty = hasAmount && !hasApprover;
-
-    const amountError = hasSubmitted && onlyAmountEmpty ? translate('workflowsApprovalLimitPage.enterAmountError') : undefined;
-    const approverErrorText = hasSubmitted && onlyApproverEmpty ? translate('workflowsApprovalLimitPage.enterApproverError') : undefined;
-
-    const firstApprover = approvalWorkflow?.originalApprovers?.at(0)?.email ?? '';
-
-    const navigateAfterCompletion = () => {
-        if (isEditFlow) {
-            // In edit mode, always go directly to the Edit page when saving
-            Navigation.goBack(ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_EDIT.getRoute(policyID, firstApprover));
-            return;
-        }
-        // Mark that we've completed the initial wizard flow before navigating to the summary page
-        setApprovalWorkflowIsInitialFlow(false);
-        Navigation.navigate(ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_NEW.getRoute(policyID));
-    };
-
-    const updateCurrentApprover = (update: Partial<Approver>) => {
-        if (!approvalWorkflow || !currentApprover) {
-            return;
-        }
-        setApprovalWorkflowApprover({
-            approver: {
-                ...currentApprover,
-                ...update,
-            },
-            approverIndex,
-            currentApprovalWorkflow: approvalWorkflow,
-            policy,
-            personalDetailsByEmail,
-        });
-    };
-
-    const resetApprovalLimit = () => {
-        updateCurrentApprover({
-            approvalLimit: null,
-            overLimitForwardsTo: '',
-        });
-    };
-
-    const handleSkip = () => {
-        resetApprovalLimit();
-        navigateAfterCompletion();
-    };
-
-    const handleSubmit = () => {
-        if (!approvalWorkflow) {
-            return;
-        }
-
-        if (!currentApprover) {
-            clearApprovalWorkflowApprover({approverIndex, currentApprovalWorkflow: approvalWorkflow});
-            navigateAfterCompletion();
-            return;
-        }
-
-        if (bothEmpty) {
-            resetApprovalLimit();
-            navigateAfterCompletion();
-            return;
-        }
-
-        if (onlyAmountEmpty || onlyApproverEmpty) {
-            setHasSubmitted(true);
-            return;
-        }
-
-        const limitInCents = convertToBackendAmount(Number.parseFloat(approvalLimit));
-        updateCurrentApprover({
-            approvalLimit: limitInCents,
-            overLimitForwardsTo: selectedApproverEmail,
-        });
-        navigateAfterCompletion();
-    };
-
-    const handleAmountChange = (value: string) => {
-        setEditedApprovalLimit(value);
-        setHasSubmitted(false);
-    };
-
-    const saveCurrentStateToOnyx = () => {
-        const limitInCents = approvalLimit ? convertToBackendAmount(Number.parseFloat(approvalLimit)) : null;
-        updateCurrentApprover({
-            approvalLimit: limitInCents,
-            overLimitForwardsTo: selectedApproverEmail,
-        });
-        setEditedApprovalLimit(null);
-        setHasSubmitted(false);
-    };
-
-    const navigateToApproverSelector = () => {
-        saveCurrentStateToOnyx();
-        Navigation.navigate(ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_OVER_LIMIT_APPROVER.getRoute(policyID, approverIndex));
-    };
-
-    const navigateToApproverChange = () => {
-        saveCurrentStateToOnyx();
-        Navigation.navigate(ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_APPROVER_CHANGE.getRoute(policyID, approverIndex));
-    };
-
-    const buttonContainerStyle = useBottomSafeSafeAreaPaddingStyle({addBottomSafeAreaPadding: true, style: [styles.mh5, styles.mb5]});
-
-    const shouldShowRemoveLimitRow = isEditFlow && (hasAmount || hasApprover);
-
-    return (
-        <AccessOrNotFoundWrapper
-            policyID={policyID}
-            featureName={CONST.POLICY.MORE_FEATURES.ARE_WORKFLOWS_ENABLED}
-        >
-            <ScreenWrapper
-                enableEdgeToEdgeBottomSafeAreaPadding
-                testID={WorkspaceWorkflowsApprovalsApprovalLimitPage.displayName}
-            >
-                <FullPageNotFoundView
-                    shouldShow={shouldShowNotFoundView}
-                    subtitleKey={isEmptyObject(policy) ? undefined : 'workspace.common.notAuthorized'}
-                    onBackButtonPress={goBackFromInvalidPolicy}
-                    onLinkPress={goBackFromInvalidPolicy}
-                    addBottomSafeAreaPadding
-                >
-                    <HeaderWithBackButton
-                        title={isEditFlow ? translate('workflowsPage.approver') : translate('workflowsApprovalLimitPage.title')}
-                        onBackButtonPress={() => Navigation.goBack()}
-                    />
-                    <ScrollView
-                        style={styles.flex1}
-                        contentContainerStyle={styles.flexGrow1}
-                    >
-                        <View style={[styles.mh5, styles.flex1]}>
-                            {isEditFlow ? (
-                                <>
-                                    <MenuItemWithTopDescription
-                                        title={approverDisplayName}
-                                        titleStyle={styles.textNormalThemeText}
-                                        description={translate('workflowsPage.approver')}
-                                        descriptionTextStyle={approverDisplayName ? styles.textLabelSupportingNormal : undefined}
-                                        onPress={navigateToApproverChange}
-                                        shouldShowRightIcon
-                                        wrapperStyle={styles.sectionMenuItemTopDescription}
-                                    />
-                                    <View style={[styles.mt3, styles.mb5]}>
-                                        <RenderHTML html={translate('workflowsApprovalLimitPage.description', {approverName: approverDisplayName})} />
-                                    </View>
-                                </>
-                            ) : (
-                                <>
-                                    <Text style={[styles.textHeadlineH1, styles.mv3]}>{translate('workflowsApprovalLimitPage.header')}</Text>
-                                    <View style={styles.mb5}>
-                                        <RenderHTML html={translate('workflowsApprovalLimitPage.description', {approverName: approverDisplayName})} />
-                                    </View>
-                                </>
-                            )}
-
-                            <View style={styles.mb4}>
-                                <AmountForm
-                                    label={translate('workflowsApprovalLimitPage.reportAmountLabel')}
-                                    currency={currency}
-                                    value={approvalLimit}
-                                    onInputChange={handleAmountChange}
-                                    isCurrencyPressable={false}
-                                    displayAsTextInput
-                                    disabled={areLimitFieldsDisabled}
-                                    errorText={amountError}
-                                    onSubmitEditing={handleSubmit}
-                                />
-                            </View>
-
-                            <MenuItemWithTopDescription
-                                title={selectedApproverDisplayName}
-                                titleStyle={styles.textNormalThemeText}
-                                description={translate('workflowsApprovalLimitPage.additionalApproverLabel')}
-                                descriptionTextStyle={selectedApproverDisplayName ? styles.textLabelSupportingNormal : undefined}
-                                onPress={navigateToApproverSelector}
-                                shouldShowRightIcon
-                                wrapperStyle={styles.sectionMenuItemTopDescription}
-                                brickRoadIndicator={approverErrorText ? CONST.BRICK_ROAD_INDICATOR_STATUS.ERROR : undefined}
-                                errorText={approverErrorText}
-                                disabled={areLimitFieldsDisabled}
-                                shouldGreyOutWhenDisabled
-                            />
-
-                            {shouldShowRemoveLimitRow && (
-                                <MenuItem
-                                    title={translate('workflowsApprovalLimitPage.removeLimit')}
-                                    icon={icons.Trashcan}
-                                    onPress={handleSkip}
-                                    wrapperStyle={styles.sectionMenuItemTopDescription}
-                                />
-                            )}
-                        </View>
-                    </ScrollView>
-
-                    <View style={buttonContainerStyle}>
-                        {!isEditFlow && (
-                            <Button
-                                large
-                                text={translate('workflowsApprovalLimitPage.skip')}
-                                onPress={handleSkip}
-                                style={styles.mb3}
-                            />
-                        )}
-                        <Button
-                            large
-                            success
-                            text={isEditFlow ? translate('common.save') : translate('workflowsApprovalLimitPage.next')}
-                            onPress={handleSubmit}
-                        />
-                    </View>
-                </FullPageNotFoundView>
-            </ScreenWrapper>
-        </AccessOrNotFoundWrapper>
-    );
-}
-
-WorkspaceWorkflowsApprovalsApprovalLimitPage.displayName = 'WorkspaceWorkflowsApprovalsApprovalLimitPage';
-
-export default withPolicyAndFullscreenLoading(WorkspaceWorkflowsApprovalsApprovalLimitPage);
diff --git a/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsApproverPage.tsx b/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsApproverPage.tsx
index f2da8a0a00f8..371539deac1e 100644
--- a/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsApproverPage.tsx
+++ b/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsApproverPage.tsx
@@ -19,12 +19,12 @@ import type {WithPolicyAndFullscreenLoadingProps} from '@pages/workspace/withPol
 import CONST from '@src/CONST';
 import ONYXKEYS from '@src/ONYXKEYS';
 import ROUTES from '@src/ROUTES';
-import SCREENS from '@src/SCREENS';
+import type SCREENS from '@src/SCREENS';
 import {personalDetailsByEmailSelector} from '@src/selectors/PersonalDetails';
 import isLoadingOnyxValue from '@src/types/utils/isLoadingOnyxValue';
 
 type WorkspaceWorkflowsApprovalsApproverPageProps = WithPolicyAndFullscreenLoadingProps &
-    PlatformStackScreenProps<WorkspaceSplitNavigatorParamList, typeof SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_APPROVER | typeof SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_APPROVER_CHANGE>;
+    PlatformStackScreenProps<WorkspaceSplitNavigatorParamList, typeof SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_APPROVER>;
 
 function WorkspaceWorkflowsApprovalsApproverPage({policy, personalDetails, isLoadingReportData = true, route}: WorkspaceWorkflowsApprovalsApproverPageProps) {
     const styles = useThemeStyles();
@@ -32,31 +32,28 @@ function WorkspaceWorkflowsApprovalsApproverPage({policy, personalDetails, isLoa
     const icons = useMemoizedLazyExpensifyIcons(['FallbackAvatar']);
     const [approvalWorkflow, approvalWorkflowMetadata] = useOnyx(ONYXKEYS.APPROVAL_WORKFLOW, {canBeMissing: true});
     const isApprovalWorkflowLoading = isLoadingOnyxValue(approvalWorkflowMetadata);
+    const [currentApprovalWorkflow] = useOnyx(ONYXKEYS.APPROVAL_WORKFLOW, {canBeMissing: true});
     const [personalDetailsByEmail] = useOnyx(ONYXKEYS.PERSONAL_DETAILS_LIST, {
         canBeMissing: true,
         selector: personalDetailsByEmailSelector,
     });
     const approverIndex = Number(route.params.approverIndex) ?? 0;
-    const rhpRoutes = useNavigationState((state) => state.routes);
+    const isInitialCreationFlow = approvalWorkflow?.action === CONST.APPROVAL_WORKFLOW.ACTION.CREATE && !route.params.backTo;
     const defaultApprover = getDefaultApprover(policy);
     const firstApprover = approvalWorkflow?.approvers?.[0]?.email ?? '';
-
-    const isChangeApproverRoute = route.name === SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_APPROVER_CHANGE;
-    const isInitialCreationFlow = approvalWorkflow?.action === CONST.APPROVAL_WORKFLOW.ACTION.CREATE && approvalWorkflow?.isInitialFlow;
+    const rhpRoutes = useNavigationState((state) => state.routes);
     const currentApprover = approvalWorkflow?.approvers[approverIndex];
     const selectedApproverEmail = currentApprover?.email;
 
     const employeeList = policy?.employeeList;
     const approversFromWorkflow = approvalWorkflow?.approvers;
     const isDefault = approvalWorkflow?.isDefault;
-
+    const membersEmail = useMemo(() => approvalWorkflow?.members.map((member) => member.email), [approvalWorkflow?.members]);
     const allApprovers: SelectionListApprover[] = useMemo(() => {
         if (isApprovalWorkflowLoading || !employeeList) {
             return [];
         }
 
-        const membersEmail = approvalWorkflow?.members?.map((member) => member.email);
-
         return Object.values(employeeList)
             .map((employee): SelectionListApprover | null => {
                 const email = employee.email;
@@ -112,7 +109,7 @@ function WorkspaceWorkflowsApprovalsApproverPage({policy, personalDetails, isLoa
         isDefault,
         policy?.preventSelfApproval,
         policy?.owner,
-        approvalWorkflow?.members,
+        membersEmail,
         approversFromWorkflow,
         selectedApproverEmail,
         approverIndex,
@@ -124,67 +121,55 @@ function WorkspaceWorkflowsApprovalsApproverPage({policy, personalDetails, isLoa
     const shouldShowListEmptyContent = !!approvalWorkflow && !isApprovalWorkflowLoading;
 
     const goBack = useCallback(() => {
-        let backToRoute;
+        let backTo;
         if (isInitialCreationFlow) {
-            backToRoute = ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_EXPENSES_FROM.getRoute(route.params.policyID);
+            backTo = ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_EXPENSES_FROM.getRoute(route.params.policyID);
             clearApprovalWorkflowApprovers();
         } else if (approvalWorkflow?.action === CONST.APPROVAL_WORKFLOW.ACTION.EDIT) {
-            backToRoute = rhpRoutes.length > 1 ? undefined : ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_EDIT.getRoute(route.params.policyID, firstApprover);
+            backTo = rhpRoutes.length > 1 ? undefined : ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_EDIT.getRoute(route.params.policyID, firstApprover);
         } else {
-            backToRoute = ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_NEW.getRoute(route.params.policyID);
+            backTo = ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_NEW.getRoute(route.params.policyID);
         }
-        Navigation.goBack(backToRoute);
+        Navigation.goBack(backTo);
     }, [isInitialCreationFlow, approvalWorkflow?.action, route.params.policyID, rhpRoutes.length, firstApprover]);
 
     const toggleApprover = useCallback(
         (approvers: SelectionListApprover[]) => {
             const approver = approvers.at(0);
-            const isRemovingApprover = approvers.length === 0;
-
-            if (isRemovingApprover) {
-                clearApprovalWorkflowApprover({approverIndex, currentApprovalWorkflow: approvalWorkflow});
-                goBack();
-                return;
+            if (!approver?.login) {
+                clearApprovalWorkflowApprover({approverIndex, currentApprovalWorkflow});
+            } else {
+                const newSelectedEmail = approver?.login ?? '';
+                const policyMemberEmailsToAccountIDs = getMemberAccountIDsForWorkspace(employeeList);
+                const accountID = Number(newSelectedEmail ? policyMemberEmailsToAccountIDs[newSelectedEmail] : '');
+                const {avatar, displayName = newSelectedEmail} = personalDetails?.[accountID] ?? {};
+                setApprovalWorkflowApprover({
+                    approver: {
+                        email: newSelectedEmail,
+                        avatar,
+                        displayName,
+                    },
+                    approverIndex,
+                    currentApprovalWorkflow,
+                    policy,
+                    personalDetailsByEmail,
+                });
             }
 
-            const newSelectedEmail = approver?.login ?? '';
-            const policyMemberEmailsToAccountIDs = getMemberAccountIDsForWorkspace(employeeList);
-            const accountID = Number(newSelectedEmail ? policyMemberEmailsToAccountIDs[newSelectedEmail] : '');
-            const {avatar, displayName = newSelectedEmail} = personalDetails?.[accountID] ?? {};
-
-            setApprovalWorkflowApprover({
-                approver: {
-                    email: newSelectedEmail,
-                    avatar,
-                    displayName,
-                    approvalLimit: null,
-                    overLimitForwardsTo: '',
-                },
-                approverIndex,
-                currentApprovalWorkflow: approvalWorkflow,
-                policy,
-                personalDetailsByEmail,
-            });
-
-            // If this is the change approver route, go back to the Approval Limit page
-            // Otherwise, navigate forward to set the approval limit
-            if (isChangeApproverRoute) {
-                Navigation.goBack(ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_APPROVAL_LIMIT.getRoute(route.params.policyID, approverIndex));
+            if (isInitialCreationFlow) {
+                Navigation.navigate(ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_NEW.getRoute(route.params.policyID));
             } else {
-                Navigation.navigate(ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_APPROVAL_LIMIT.getRoute(route.params.policyID, approverIndex));
+                goBack();
             }
         },
-        [approverIndex, approvalWorkflow, employeeList, personalDetails, policy, route.params.policyID, goBack, personalDetailsByEmail, isChangeApproverRoute],
+        [isInitialCreationFlow, approverIndex, currentApprovalWorkflow, employeeList, personalDetails, policy, route.params.policyID, goBack, personalDetailsByEmail],
     );
 
     const subtitle = useMemo(
-        () => (
-            <>
-                <Text style={[styles.textHeadlineH1, styles.mh5, styles.mv3]}>{translate('workflowsApproverPage.title')}</Text>
-                <Text style={[styles.mh5, styles.mb3, styles.textSupporting]}>{translate('workflowsApproverPage.description')}</Text>
-            </>
-        ),
-        [translate, styles.textHeadlineH1, styles.mh5, styles.mv3, styles.mb3, styles.textSupporting],
+        () =>
+            approvalWorkflow?.action === CONST.APPROVAL_WORKFLOW.ACTION.CREATE &&
+            !shouldShowListEmptyContent && <Text style={[styles.textHeadlineH1, styles.mh5, styles.mv3]}>{translate('workflowsApproverPage.header')}</Text>,
+        [approvalWorkflow?.action, shouldShowListEmptyContent, translate, styles.textHeadlineH1, styles.mh5, styles.mv3],
     );
 
     return (
diff --git a/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsCreatePage.tsx b/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsCreatePage.tsx
index 5ab0dc20f946..f9f27743bd07 100644
--- a/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsCreatePage.tsx
+++ b/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsCreatePage.tsx
@@ -1,4 +1,4 @@
-import React, {useRef} from 'react';
+import React, {useCallback, useRef} from 'react';
 // eslint-disable-next-line no-restricted-imports
 import type {ScrollView} from 'react-native';
 import FullPageNotFoundView from '@components/BlockingViews/FullPageNotFoundView';
@@ -37,7 +37,7 @@ function WorkspaceWorkflowsApprovalsCreatePage({policy, isLoadingReportData = tr
     // eslint-disable-next-line rulesdir/no-negated-variables
     const shouldShowNotFoundView = (isEmptyObject(policy) && !isLoadingReportData) || !isPolicyAdmin(policy) || isPendingDeletePolicy(policy);
 
-    const createApprovalWorkflow = () => {
+    const createApprovalWorkflow = useCallback(() => {
         if (!approvalWorkflow) {
             return;
         }
@@ -48,7 +48,7 @@ function WorkspaceWorkflowsApprovalsCreatePage({policy, isLoadingReportData = tr
 
         createApprovalWorkflowAction(approvalWorkflow, policy);
         Navigation.dismissModal();
-    };
+    }, [approvalWorkflow, policy]);
 
     const submitButtonContainerStyles = useBottomSafeSafeAreaPaddingStyle({addBottomSafeAreaPadding: true, style: [styles.mb5, styles.mh5]});
 
@@ -70,7 +70,7 @@ function WorkspaceWorkflowsApprovalsCreatePage({policy, isLoadingReportData = tr
                 >
                     <HeaderWithBackButton
                         title={translate('workflowsCreateApprovalsPage.title')}
-                        onBackButtonPress={() => Navigation.goBack(ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_APPROVAL_LIMIT.getRoute(route.params.policyID, 0))}
+                        onBackButtonPress={() => Navigation.goBack(ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_APPROVER.getRoute(route.params.policyID, 0))}
                     />
                     {!!approvalWorkflow && (
                         <>
diff --git a/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsEditPage.tsx b/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsEditPage.tsx
index 2e429a0c4a11..ce86c39ad193 100644
--- a/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsEditPage.tsx
+++ b/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsEditPage.tsx
@@ -1,4 +1,4 @@
-import React, {useEffect, useRef, useState} from 'react';
+import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';
 // eslint-disable-next-line no-restricted-imports
 import type {ScrollView} from 'react-native';
 import {InteractionManager} from 'react-native';
@@ -39,9 +39,8 @@ function WorkspaceWorkflowsApprovalsEditPage({policy, isLoadingReportData = true
     const [initialApprovalWorkflow, setInitialApprovalWorkflow] = useState<ApprovalWorkflow | undefined>();
     const [isDeleteModalVisible, setIsDeleteModalVisible] = useState(false);
     const formRef = useRef<ScrollView>(null);
-    const isDeleting = useRef(false);
 
-    const updateApprovalWorkflowCallback = () => {
+    const updateApprovalWorkflowCallback = useCallback(() => {
         if (!approvalWorkflow || !initialApprovalWorkflow) {
             return;
         }
@@ -58,15 +57,13 @@ function WorkspaceWorkflowsApprovalsEditPage({policy, isLoadingReportData = true
         InteractionManager.runAfterInteractions(() => {
             updateApprovalWorkflow(approvalWorkflow, membersToRemove, approversToRemove, policy);
         });
-    };
+    }, [approvalWorkflow, initialApprovalWorkflow, policy]);
 
-    const removeApprovalWorkflowCallback = () => {
+    const removeApprovalWorkflowCallback = useCallback(() => {
         if (!initialApprovalWorkflow) {
             return;
         }
 
-        // Mark as deleting to prevent the useEffect from clearing the workflow and causing a blink
-        isDeleting.current = true;
         setIsDeleteModalVisible(false);
         Navigation.dismissModal();
         // eslint-disable-next-line @typescript-eslint/no-deprecated
@@ -74,9 +71,9 @@ function WorkspaceWorkflowsApprovalsEditPage({policy, isLoadingReportData = true
             // Remove the approval workflow using the initial data as it could be already edited
             removeApprovalWorkflow(initialApprovalWorkflow, policy);
         });
-    };
+    }, [initialApprovalWorkflow, policy]);
 
-    const getApprovalWorkflowData = () => {
+    const {currentApprovalWorkflow, defaultWorkflowMembers, usedApproverEmails} = useMemo(() => {
         if (!policy || !personalDetails) {
             return {};
         }
@@ -94,9 +91,7 @@ function WorkspaceWorkflowsApprovalsEditPage({policy, isLoadingReportData = true
             usedApproverEmails: result.usedApproverEmails,
             currentApprovalWorkflow: result.approvalWorkflows.find((workflow) => workflow.approvers.at(0)?.email === firstApprover),
         };
-    };
-
-    const {currentApprovalWorkflow, defaultWorkflowMembers, usedApproverEmails} = getApprovalWorkflowData();
+    }, [personalDetails, policy, route.params.firstApproverEmail, localeCompare]);
 
     // eslint-disable-next-line rulesdir/no-negated-variables
     const shouldShowNotFoundView = (isEmptyObject(policy) && !isLoadingReportData) || !isPolicyAdmin(policy) || isPendingDeletePolicy(policy) || !currentApprovalWorkflow;
@@ -108,10 +103,6 @@ function WorkspaceWorkflowsApprovalsEditPage({policy, isLoadingReportData = true
         }
 
         if (!currentApprovalWorkflow) {
-            // Don't clear if we're in the middle of deleting - this prevents the UI from blinking
-            if (isDeleting.current) {
-                return;
-            }
             return clearApprovalWorkflow();
         }
 
diff --git a/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsExpensesFromPage.tsx b/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsExpensesFromPage.tsx
index 7c2542ab0809..3ba287aa62ac 100644
--- a/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsExpensesFromPage.tsx
+++ b/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsExpensesFromPage.tsx
@@ -41,7 +41,7 @@ function WorkspaceWorkflowsApprovalsExpensesFromPage({policy, isLoadingReportDat
 
     // eslint-disable-next-line rulesdir/no-negated-variables
     const shouldShowNotFoundView = (isEmptyObject(policy) && !isLoadingReportData) || !isPolicyAdmin(policy) || isPendingDeletePolicy(policy);
-    const isInitialCreationFlow = approvalWorkflow?.action === CONST.APPROVAL_WORKFLOW.ACTION.CREATE && approvalWorkflow?.isInitialFlow;
+    const isInitialCreationFlow = approvalWorkflow?.action === CONST.APPROVAL_WORKFLOW.ACTION.CREATE && !route.params.backTo;
     const shouldShowListEmptyContent = !isLoadingApprovalWorkflow && approvalWorkflow && approvalWorkflow.availableMembers.length === 0;
     const firstApprover = approvalWorkflow?.originalApprovers?.[0]?.email ?? '';
 
diff --git a/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsOverLimitApproverPage.tsx b/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsOverLimitApproverPage.tsx
deleted file mode 100644
index 64ba0ae3d19a..000000000000
--- a/src/pages/workspace/workflows/approvals/WorkspaceWorkflowsApprovalsOverLimitApproverPage.tsx
+++ /dev/null
@@ -1,170 +0,0 @@
-import React from 'react';
-import type {SelectionListApprover} from '@components/ApproverSelectionList';
-import ApproverSelectionList from '@components/ApproverSelectionList';
-import Text from '@components/Text';
-import {useMemoizedLazyExpensifyIcons} from '@hooks/useLazyAsset';
-import useLocalize from '@hooks/useLocalize';
-import useOnyx from '@hooks/useOnyx';
-import useThemeStyles from '@hooks/useThemeStyles';
-import Navigation from '@libs/Navigation/Navigation';
-import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types';
-import type {WorkspaceSplitNavigatorParamList} from '@libs/Navigation/types';
-import {getMemberAccountIDsForWorkspace} from '@libs/PolicyUtils';
-import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper';
-import MemberRightIcon from '@pages/workspace/MemberRightIcon';
-import withPolicyAndFullscreenLoading from '@pages/workspace/withPolicyAndFullscreenLoading';
-import type {WithPolicyAndFullscreenLoadingProps} from '@pages/workspace/withPolicyAndFullscreenLoading';
-import {setApprovalWorkflowApprover} from '@userActions/Workflow';
-import CONST from '@src/CONST';
-import ONYXKEYS from '@src/ONYXKEYS';
-import ROUTES from '@src/ROUTES';
-import type SCREENS from '@src/SCREENS';
-import {personalDetailsByEmailSelector} from '@src/selectors/PersonalDetails';
-import isLoadingOnyxValue from '@src/types/utils/isLoadingOnyxValue';
-
-type WorkspaceWorkflowsApprovalsOverLimitApproverPageProps = WithPolicyAndFullscreenLoadingProps &
-    PlatformStackScreenProps<WorkspaceSplitNavigatorParamList, typeof SCREENS.WORKSPACE.WORKFLOWS_APPROVALS_OVER_LIMIT_APPROVER>;
-
-function WorkspaceWorkflowsApprovalsOverLimitApproverPage({policy, personalDetails, isLoadingReportData = true, route}: WorkspaceWorkflowsApprovalsOverLimitApproverPageProps) {
-    const styles = useThemeStyles();
-    const {translate} = useLocalize();
-    const [approvalWorkflow, approvalWorkflowMetadata] = useOnyx(ONYXKEYS.APPROVAL_WORKFLOW, {canBeMissing: true});
-    const isApprovalWorkflowLoading = isLoadingOnyxValue(approvalWorkflowMetadata);
-    const [personalDetailsByEmail] = useOnyx(ONYXKEYS.PERSONAL_DETAILS_LIST, {
-        canBeMissing: true,
-        selector: personalDetailsByEmailSelector,
-    });
-    const expensifyIcons = useMemoizedLazyExpensifyIcons(['FallbackAvatar'] as const);
-
-    const policyID = route.params.policyID;
-    const approverIndex = Number(route.params.approverIndex) ?? 0;
-    const currentApprover = approvalWorkflow?.approvers?.[approverIndex];
-
-    const employeeList = policy?.employeeList;
-    const isDefault = approvalWorkflow?.isDefault;
-    const membersEmail = approvalWorkflow?.members.map((member) => member.email);
-
-    const currentApproverEmail = currentApprover?.email;
-
-    const allApprovers: SelectionListApprover[] = (() => {
-        if (isApprovalWorkflowLoading || !employeeList) {
-            return [];
-        }
-
-        const policyMemberEmailsToAccountIDs = getMemberAccountIDsForWorkspace(employeeList);
-
-        return Object.values(employeeList)
-            .map((employee): SelectionListApprover | null => {
-                const email = employee.email;
-
-                if (!email) {
-                    return null;
-                }
-
-                if (!isDefault && policy?.preventSelfApproval && membersEmail?.includes(email)) {
-                    return null;
-                }
-
-                if (email === currentApproverEmail) {
-                    return null;
-                }
-
-                const accountID = Number(policyMemberEmailsToAccountIDs[email] ?? '');
-                const {avatar, displayName = email, login} = personalDetails?.[accountID] ?? {};
-
-                return {
-                    text: displayName,
-                    alternateText: email,
-                    keyForList: email,
-                    isSelected: currentApprover?.overLimitForwardsTo === email,
-                    login: email,
-                    icons: [{source: avatar ?? expensifyIcons.FallbackAvatar, type: CONST.ICON_TYPE_AVATAR, name: displayName, id: accountID}],
-                    rightElement: (
-                        <MemberRightIcon
-                            role={employee.role}
-                            owner={policy?.owner}
-                            login={login}
-                        />
-                    ),
-                };
-            })
-            .filter((approver): approver is SelectionListApprover => !!approver);
-    })();
-
-    const shouldShowListEmptyContent = !!approvalWorkflow && !isApprovalWorkflowLoading;
-
-    const goBack = () => {
-        Navigation.goBack(ROUTES.WORKSPACE_WORKFLOWS_APPROVALS_APPROVAL_LIMIT.getRoute(policyID, approverIndex));
-    };
-
-    const selectApprover = (approvers: SelectionListApprover[]) => {
-        const selectedApprover = approvers.at(0);
-
-        if (!approvalWorkflow || !currentApprover) {
-            return;
-        }
-
-        // If empty array, the same approver was tapped again to unselect
-        if (approvers.length === 0) {
-            setApprovalWorkflowApprover({
-                approver: {
-                    ...currentApprover,
-                    overLimitForwardsTo: '',
-                    approvalLimit: null,
-                },
-                approverIndex,
-                currentApprovalWorkflow: approvalWorkflow,
-                policy,
-                personalDetailsByEmail,
-            });
-            goBack();
-            return;
-        }
-
-        if (!selectedApprover?.login) {
-            return;
-        }
-
-        setApprovalWorkflowApprover({
-            approver: {
-                ...currentApprover,
-                overLimitForwardsTo: selectedApprover.login,
-            },
-            approverIndex,
-            currentApprovalWorkflow: approvalWorkflow,
-            policy,
-            personalDetailsByEmail,
-        });
-
-        goBack();
-    };
-
-    const subtitle = !shouldShowListEmptyContent && <Text style={[styles.textHeadlineH1, styles.mh5, styles.mv3]}>{translate('workflowsApprovalLimitPage.additionalApproverLabel')}</Text>;
-
-    return (
-        <AccessOrNotFoundWrapper
-            policyID={policyID}
-            featureName={CONST.POLICY.MORE_FEATURES.ARE_WORKFLOWS_ENABLED}
-        >
-            <ApproverSelectionList
-                testID={WorkspaceWorkflowsApprovalsOverLimitApproverPage.displayName}
-                headerTitle={translate('workflowsApprovalLimitPage.additionalApproverLabel')}
-                subtitle={subtitle}
-                isLoadingReportData={isLoadingReportData}
-                policy={policy}
-                initiallyFocusedOptionKey={currentApprover?.overLimitForwardsTo}
-                shouldShowNotFoundViewLink
-                allApprovers={allApprovers}
-                onBackButtonPress={goBack}
-                shouldShowListEmptyContent={shouldShowListEmptyContent}
-                listEmptyContentSubtitle={translate('workflowsPage.emptyContent.approverSubtitle')}
-                allowMultipleSelection={false}
-                onSelectApprover={selectApprover}
-            />
-        </AccessOrNotFoundWrapper>
-    );
-}
-
-WorkspaceWorkflowsApprovalsOverLimitApproverPage.displayName = 'WorkspaceWorkflowsApprovalsOverLimitApproverPage';
-
-export default withPolicyAndFullscreenLoading(WorkspaceWorkflowsApprovalsOverLimitApproverPage);
diff --git a/src/styles/index.ts b/src/styles/index.ts
index 898d89268c40..85b69b22fe60 100644
--- a/src/styles/index.ts
+++ b/src/styles/index.ts
@@ -5281,11 +5281,6 @@ const staticStyles = (theme: ThemeColors) =>
             backgroundColor: theme.border,
         },
 
-        workflowApprovalLimitText: {
-            marginLeft: 32,
-            paddingBottom: 0,
-        },
-
         integrationIcon: {
             overflow: 'hidden',
             borderRadius: variables.buttonBorderRadius,
diff --git a/src/types/onyx/ApprovalWorkflow.ts b/src/types/onyx/ApprovalWorkflow.ts
index 226577ffc585..f508e7f22420 100644
--- a/src/types/onyx/ApprovalWorkflow.ts
+++ b/src/types/onyx/ApprovalWorkflow.ts
@@ -35,16 +35,6 @@ type Approver = {
      * example: A -> B -> C -> A (cycle)
      */
     isCircularReference?: boolean;
-
-    /**
-     * If report total is above this limit, the report will be forwarded to 'overLimitForwardsTo' instead of 'forwardsTo'
-     */
-    approvalLimit?: number | null;
-
-    /**
-     * Email of the user this user forwards all approved reports to when report total is above 'approvalLimit'
-     */
-    overLimitForwardsTo?: string;
 };
 
 /**
@@ -129,11 +119,6 @@ type ApprovalWorkflowOnyx = Omit<ApprovalWorkflow, 'approvers'> & {
      * List of original approvers in the workflow
      */
     originalApprovers: Approver[];
-
-    /**
-     * Whether the user is in the initial creation flow
-     */
-    isInitialFlow?: boolean;
 };
 
 export default ApprovalWorkflow;
diff --git a/src/types/onyx/PolicyEmployee.ts b/src/types/onyx/PolicyEmployee.ts
index fd16fc684126..3ba9633fee44 100644
--- a/src/types/onyx/PolicyEmployee.ts
+++ b/src/types/onyx/PolicyEmployee.ts
@@ -18,8 +18,8 @@ type PolicyEmployee = OnyxCommon.OnyxValueWithOfflineFeedback<{
     /** Email of the user */
     email?: string;
 
-    /** Determines if this employee should approve a report. If report total > approvalLimit, next approver will be 'overLimitForwardsTo', otherwise 'forwardsTo'. Set to null to clear. */
-    approvalLimit?: number | null;
+    /** Determines if this employee should approve a report. If report total > approvalLimit, next approver will be 'overLimitForwardsTo', otherwise 'forwardsTo' */
+    approvalLimit?: number;
 
     /** Email of the user this user forwards all approved reports to (when report total under 'approvalLimit' or when 'overLimitForwardsTo' is not set) */
     forwardsTo?: string;
diff --git a/tests/unit/WorkflowUtilsTest.ts b/tests/unit/WorkflowUtilsTest.ts
index 285b93caa531..4a245f08e11b 100644
--- a/tests/unit/WorkflowUtilsTest.ts
+++ b/tests/unit/WorkflowUtilsTest.ts
@@ -194,49 +194,6 @@ describe('WorkflowUtils', () => {
                 buildApprover(1, {forwardsTo: '1@example.com', isCircularReference: true}),
             ]);
         });
-
-        it('Should include approvalLimit and overLimitForwardsTo in approver objects', () => {
-            const employees: PolicyEmployeeList = {
-                '1@example.com': {
-                    email: '1@example.com',
-                    forwardsTo: '2@example.com',
-                    approvalLimit: 50000,
-                    overLimitForwardsTo: '3@example.com',
-                },
-                '2@example.com': {
-                    email: '2@example.com',
-                    forwardsTo: undefined,
-                    approvalLimit: 100000,
-                    overLimitForwardsTo: '3@example.com',
-                },
-                '3@example.com': {
-                    email: '3@example.com',
-                    forwardsTo: undefined,
-                },
-            };
-
-            const approvers = WorkflowUtils.calculateApprovers({employees, firstEmail: '1@example.com', personalDetailsByEmail});
-
-            expect(approvers).toEqual([
-                buildApprover(1, {forwardsTo: '2@example.com', approvalLimit: 50000, overLimitForwardsTo: '3@example.com'}),
-                buildApprover(2, {approvalLimit: 100000, overLimitForwardsTo: '3@example.com'}),
-            ]);
-        });
-
-        it('Should handle null approvalLimit correctly', () => {
-            const employees: PolicyEmployeeList = {
-                '1@example.com': {
-                    email: '1@example.com',
-                    forwardsTo: undefined,
-                    approvalLimit: null,
-                    overLimitForwardsTo: '',
-                },
-            };
-
-            const approvers = WorkflowUtils.calculateApprovers({employees, firstEmail: '1@example.com', personalDetailsByEmail});
-
-            expect(approvers).toEqual([buildApprover(1, {approvalLimit: null, overLimitForwardsTo: ''})]);
-        });
     });
 
     describe('convertPolicyEmployeesToApprovalWorkflows', () => {
@@ -474,7 +431,7 @@ describe('WorkflowUtils', () => {
             const convertedEmployees = WorkflowUtils.convertApprovalWorkflowToPolicyEmployees({previousEmployeeList: {}, approvalWorkflow, type: 'create'});
 
             expect(convertedEmployees).toEqual({
-                '1@example.com': buildPolicyEmployee(1, {forwardsTo: '', overLimitForwardsTo: '', submitsTo: '1@example.com', pendingFields: {submitsTo: 'add'}}),
+                '1@example.com': buildPolicyEmployee(1, {forwardsTo: '', submitsTo: '1@example.com', pendingFields: {submitsTo: 'add'}}),
                 '2@example.com': buildPolicyEmployee(2, {submitsTo: '1@example.com', pendingFields: {submitsTo: 'add'}}),
             });
         });
@@ -489,9 +446,9 @@ describe('WorkflowUtils', () => {
             const convertedEmployees = WorkflowUtils.convertApprovalWorkflowToPolicyEmployees({previousEmployeeList: {}, approvalWorkflow, type: 'create'});
 
             expect(convertedEmployees).toEqual({
-                '1@example.com': buildPolicyEmployee(1, {forwardsTo: '2@example.com', overLimitForwardsTo: '', pendingFields: {forwardsTo: 'add', overLimitForwardsTo: 'add'}}),
-                '2@example.com': buildPolicyEmployee(2, {forwardsTo: '3@example.com', overLimitForwardsTo: '', pendingFields: {forwardsTo: 'add', overLimitForwardsTo: 'add'}}),
-                '3@example.com': buildPolicyEmployee(3, {forwardsTo: '', overLimitForwardsTo: '', pendingFields: {forwardsTo: 'add', overLimitForwardsTo: 'add'}}),
+                '1@example.com': buildPolicyEmployee(1, {forwardsTo: '2@example.com', pendingFields: {forwardsTo: 'add'}}),
+                '2@example.com': buildPolicyEmployee(2, {forwardsTo: '3@example.com', pendingFields: {forwardsTo: 'add'}}),
+                '3@example.com': buildPolicyEmployee(3, {forwardsTo: '', pendingFields: {forwardsTo: 'add'}}),
                 '4@example.com': buildPolicyEmployee(4, {submitsTo: '1@example.com', pendingFields: {submitsTo: 'add'}}),
                 '5@example.com': buildPolicyEmployee(5, {submitsTo: '1@example.com', pendingFields: {submitsTo: 'add'}}),
                 '6@example.com': buildPolicyEmployee(6, {submitsTo: '1@example.com', pendingFields: {submitsTo: 'add'}}),
@@ -508,123 +465,14 @@ describe('WorkflowUtils', () => {
             const convertedEmployees = WorkflowUtils.convertApprovalWorkflowToPolicyEmployees({previousEmployeeList: {}, approvalWorkflow, type: 'remove'});
 
             expect(convertedEmployees).toEqual({
-                '1@example.com': buildPolicyEmployee(1, {
-                    forwardsTo: '',
-                    approvalLimit: null,
-                    overLimitForwardsTo: '',
-                    pendingAction: 'update',
-                    pendingFields: {forwardsTo: 'update', approvalLimit: 'update', overLimitForwardsTo: 'update'},
-                }),
-                '2@example.com': buildPolicyEmployee(2, {
-                    forwardsTo: '',
-                    approvalLimit: null,
-                    overLimitForwardsTo: '',
-                    pendingAction: 'update',
-                    pendingFields: {forwardsTo: 'update', approvalLimit: 'update', overLimitForwardsTo: 'update'},
-                }),
-                '3@example.com': buildPolicyEmployee(3, {
-                    forwardsTo: '',
-                    approvalLimit: null,
-                    overLimitForwardsTo: '',
-                    pendingAction: 'update',
-                    pendingFields: {forwardsTo: 'update', approvalLimit: 'update', overLimitForwardsTo: 'update'},
-                }),
+                '1@example.com': buildPolicyEmployee(1, {forwardsTo: '', pendingAction: 'update', pendingFields: {forwardsTo: 'update'}}),
+                '2@example.com': buildPolicyEmployee(2, {forwardsTo: '', pendingAction: 'update', pendingFields: {forwardsTo: 'update'}}),
+                '3@example.com': buildPolicyEmployee(3, {forwardsTo: '', pendingAction: 'update', pendingFields: {forwardsTo: 'update'}}),
                 '4@example.com': buildPolicyEmployee(4, {submitsTo: '', pendingAction: 'update', pendingFields: {submitsTo: 'update'}}),
                 '5@example.com': buildPolicyEmployee(5, {submitsTo: '', pendingAction: 'update', pendingFields: {submitsTo: 'update'}}),
                 '6@example.com': buildPolicyEmployee(6, {submitsTo: '', pendingAction: 'update', pendingFields: {submitsTo: 'update'}}),
             });
         });
-
-        it('Should include approvalLimit and overLimitForwardsTo when creating workflow with limits', () => {
-            const approvalWorkflow: ApprovalWorkflow = {
-                members: [buildMember(2)],
-                approvers: [buildApprover(1, {approvalLimit: 50000, overLimitForwardsTo: '3@example.com'})],
-                isDefault: false,
-            };
-
-            const convertedEmployees = WorkflowUtils.convertApprovalWorkflowToPolicyEmployees({previousEmployeeList: {}, approvalWorkflow, type: 'create'});
-
-            expect(convertedEmployees).toEqual({
-                '1@example.com': buildPolicyEmployee(1, {
-                    forwardsTo: '',
-                    approvalLimit: 50000,
-                    overLimitForwardsTo: '3@example.com',
-                    pendingFields: {forwardsTo: 'add', approvalLimit: 'add', overLimitForwardsTo: 'add'},
-                }),
-                '2@example.com': buildPolicyEmployee(2, {submitsTo: '1@example.com', pendingFields: {submitsTo: 'add'}}),
-            });
-        });
-
-        it('Should set approvalLimit to null when removing workflow (not undefined)', () => {
-            const previousEmployeeList: PolicyEmployeeList = {
-                '1@example.com': {
-                    email: '1@example.com',
-                    forwardsTo: '2@example.com',
-                    approvalLimit: 50000,
-                    overLimitForwardsTo: '3@example.com',
-                },
-            };
-            const approvalWorkflow: ApprovalWorkflow = {
-                members: [],
-                approvers: [buildApprover(1, {forwardsTo: '2@example.com', approvalLimit: 50000, overLimitForwardsTo: '3@example.com'})],
-                isDefault: false,
-            };
-
-            const convertedEmployees = WorkflowUtils.convertApprovalWorkflowToPolicyEmployees({previousEmployeeList, approvalWorkflow, type: 'remove'});
-
-            // approvalLimit should be null (not undefined) so it gets sent to the API and clears the field
-            expect(convertedEmployees['1@example.com']?.approvalLimit).toBeNull();
-            expect(convertedEmployees['1@example.com']?.overLimitForwardsTo).toBe('');
-        });
-
-        it('Should include pendingFields for approvalLimit and overLimitForwardsTo when they change', () => {
-            const previousEmployeeList: PolicyEmployeeList = {
-                '1@example.com': {
-                    email: '1@example.com',
-                    forwardsTo: '',
-                    approvalLimit: 50000,
-                    overLimitForwardsTo: '3@example.com',
-                },
-            };
-            const approvalWorkflow: ApprovalWorkflow = {
-                members: [],
-                approvers: [buildApprover(1, {approvalLimit: 100000, overLimitForwardsTo: '4@example.com'})],
-                isDefault: false,
-            };
-
-            const convertedEmployees = WorkflowUtils.convertApprovalWorkflowToPolicyEmployees({previousEmployeeList, approvalWorkflow, type: 'update'});
-
-            // pendingFields should include the fields that changed (forwardsTo didn't change since it's '' -> '')
-            expect(convertedEmployees['1@example.com']?.pendingFields).toEqual({
-                approvalLimit: 'update',
-                overLimitForwardsTo: 'update',
-            });
-            expect(convertedEmployees['1@example.com']?.approvalLimit).toBe(100000);
-            expect(convertedEmployees['1@example.com']?.overLimitForwardsTo).toBe('4@example.com');
-        });
-
-        it('Should not include unchanged fields in pendingFields', () => {
-            const previousEmployeeList: PolicyEmployeeList = {
-                '1@example.com': {
-                    email: '1@example.com',
-                    forwardsTo: '',
-                    approvalLimit: 50000,
-                    overLimitForwardsTo: '3@example.com',
-                },
-            };
-            const approvalWorkflow: ApprovalWorkflow = {
-                members: [],
-                approvers: [buildApprover(1, {approvalLimit: 50000, overLimitForwardsTo: '4@example.com'})],
-                isDefault: false,
-            };
-
-            const convertedEmployees = WorkflowUtils.convertApprovalWorkflowToPolicyEmployees({previousEmployeeList, approvalWorkflow, type: 'update'});
-
-            // Only overLimitForwardsTo changed, so only that should be in pendingFields
-            expect(convertedEmployees['1@example.com']?.pendingFields).toEqual({
-                overLimitForwardsTo: 'update',
-            });
-        });
     });
 
     describe('updateWorkflowDataOnApproverRemoval', () => {
@@ -794,96 +642,4 @@ describe('WorkflowUtils', () => {
             expect(updateWorkflowDataOnApproverRemoval).toEqual([approvalWorkflow1, {...approvalWorkflow2, removeApprovalWorkflow: true}]);
         });
     });
-
-    describe('getApprovalLimitDescription', () => {
-        const mockTranslate = jest.fn((key: string, params?: Record<string, string>) => {
-            if (key === 'workflowsApprovalLimitPage.forwardLimitDescription') {
-                return `Reports above ${params?.approvalLimit} forward to ${params?.approverName}`;
-            }
-            return key;
-        });
-
-        beforeEach(() => {
-            mockTranslate.mockClear();
-        });
-
-        it('Should return undefined when approver is undefined', () => {
-            const result = WorkflowUtils.getApprovalLimitDescription({
-                approver: undefined,
-                currency: 'USD',
-                translate: mockTranslate as unknown as Parameters<typeof WorkflowUtils.getApprovalLimitDescription>[0]['translate'],
-                personalDetailsByEmail: {},
-            });
-
-            expect(result).toBeUndefined();
-        });
-
-        it('Should return undefined when approvalLimit is null', () => {
-            const approver = buildApprover(1, {approvalLimit: null, overLimitForwardsTo: '2@example.com'});
-
-            const result = WorkflowUtils.getApprovalLimitDescription({
-                approver,
-                currency: 'USD',
-                translate: mockTranslate as unknown as Parameters<typeof WorkflowUtils.getApprovalLimitDescription>[0]['translate'],
-                personalDetailsByEmail: {},
-            });
-
-            expect(result).toBeUndefined();
-        });
-
-        it('Should return undefined when approvalLimit is undefined', () => {
-            const approver = buildApprover(1, {approvalLimit: undefined, overLimitForwardsTo: '2@example.com'});
-
-            const result = WorkflowUtils.getApprovalLimitDescription({
-                approver,
-                currency: 'USD',
-                translate: mockTranslate as unknown as Parameters<typeof WorkflowUtils.getApprovalLimitDescription>[0]['translate'],
-                personalDetailsByEmail: {},
-            });
-
-            expect(result).toBeUndefined();
-        });
-
-        it('Should return undefined when overLimitForwardsTo is missing', () => {
-            const approver = buildApprover(1, {approvalLimit: 50000, overLimitForwardsTo: undefined});
-
-            const result = WorkflowUtils.getApprovalLimitDescription({
-                approver,
-                currency: 'USD',
-                translate: mockTranslate as unknown as Parameters<typeof WorkflowUtils.getApprovalLimitDescription>[0]['translate'],
-                personalDetailsByEmail: {},
-            });
-
-            expect(result).toBeUndefined();
-        });
-
-        it('Should return description when approvalLimit and overLimitForwardsTo are set', () => {
-            const approver = buildApprover(1, {approvalLimit: 50000, overLimitForwardsTo: '2@example.com'});
-
-            const result = WorkflowUtils.getApprovalLimitDescription({
-                approver,
-                currency: 'USD',
-                translate: mockTranslate as unknown as Parameters<typeof WorkflowUtils.getApprovalLimitDescription>[0]['translate'],
-                personalDetailsByEmail: {},
-            });
-
-            expect(result).toBe('Reports above $500.00 forward to 2@example.com');
-        });
-
-        it('Should use display name from personalDetails when available', () => {
-            const approver = buildApprover(1, {approvalLimit: 100000, overLimitForwardsTo: '2@example.com'});
-            const personalDetailsWithEmail: PersonalDetailsList = {
-                '2@example.com': {accountID: 2, displayName: 'John Doe'},
-            };
-
-            const result = WorkflowUtils.getApprovalLimitDescription({
-                approver,
-                currency: 'USD',
-                translate: mockTranslate as unknown as Parameters<typeof WorkflowUtils.getApprovalLimitDescription>[0]['translate'],
-                personalDetailsByEmail: personalDetailsWithEmail,
-            });
-
-            expect(result).toBe('Reports above $1,000.00 forward to John Doe');
-        });
-    });
 });
