diff --git a/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-forward-formular.e2e.component.ts b/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-forward-formular.e2e.component.ts
index a4c4310c17db187a33065e33cb60e21cbff21b47..a550f4adf9a9e0a864640917ce66fcd10a42ed20 100644
--- a/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-forward-formular.e2e.component.ts
+++ b/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-forward-formular.e2e.component.ts
@@ -50,13 +50,7 @@ export class ForwardFormularE2EComponent {
     return cy.getTestElement(this.locatorZustaendigeStelleError);
   }
 
-  //TODO Getter draus machen und im Test den click durchführen
-  public forward() {
-    return this.getForwardButton().click();
-  }
-  //
-
-  private getForwardButton() {
+  public getForwardButton() {
     return cy.getTestElement(this.locatorForwardButton);
   }
 }
diff --git a/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-forward.e2e.component.ts b/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-forward.e2e.component.ts
index b6e8c7ca678c84bc16b90780b606e8858406b042..ee138ef9c37dc0daffcefd25286206011b778f2f 100644
--- a/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-forward.e2e.component.ts
+++ b/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-forward.e2e.component.ts
@@ -23,7 +23,7 @@
  */
 import { ForwardFormularE2EComponent } from './vorgang-forward-formular.e2e.component';
 
-export class VorgangForwardingE2EComponent {
+export class ForwardingByEmailE2EComponent {
   private readonly locatorForwardingSpinner: string = 'forwarding-spinner';
   private readonly locatorForwardingSuccessMessage: string = 'forwarding-success-message';
   private readonly locatorForwardingErrorMessage: string = 'forwarding-error-message';
@@ -32,8 +32,7 @@ export class VorgangForwardingE2EComponent {
   private readonly locatorForwardingMarkAsFailButton: string = 'mark-as-fail-button';
   private readonly locatorFailedMessage: string = 'failed-message';
 
-  private readonly forwardingFormular: ForwardFormularE2EComponent =
-    new ForwardFormularE2EComponent();
+  private readonly forwardingFormular: ForwardFormularE2EComponent = new ForwardFormularE2EComponent();
 
   private readonly locatorRoot: string = 'forwarding';
 
diff --git a/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-forwarding-dialog.e2e.component.ts b/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-forwarding-dialog.e2e.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..27fbc0aa695b4e30a7e311679e3331dfd621b8ea
--- /dev/null
+++ b/alfa-client/apps/alfa-e2e/src/components/vorgang/vorgang-forwarding-dialog.e2e.component.ts
@@ -0,0 +1,51 @@
+export class ForwardingDialogE2EComponent {
+  private readonly root: string = 'forwarding-dialog';
+  private readonly cancelButton: string = 'cancel-dialog-button';
+  private readonly cancelIconButton: string = 'cancel-dialog-icon-button';
+  private readonly forwardingButton: string = 'forwarding-button';
+  private readonly searchText: string = 'instant_search-text-input';
+  private readonly searchEntry: string = 'item-button';
+  private readonly forwardingItem: string = 'forwarding-item';
+  private readonly changeButton: string = 'forwarding-item-change-button';
+  private readonly zufiSearch: string = 'zufi-search';
+
+  public getRoot() {
+    return cy.getTestElement(this.root);
+  }
+
+  public getCancelButton() {
+    return cy.getTestElement(this.cancelButton);
+  }
+
+  public getCancelIconButton() {
+    return cy.getTestElement(this.cancelIconButton);
+  }
+
+  public getForwardingButton() {
+    return cy.getTestElement(this.forwardingButton);
+  }
+
+  public getSearchText() {
+    return cy.getTestElement(this.searchText);
+  }
+
+  public search(text: string) {
+    this.getSearchText().type(text);
+  }
+
+  public clickSearchEntry(index: number): void {
+    cy.getTestElement(this.searchEntry).eq(index).click();
+  }
+
+  public getForwardingItem() {
+    return cy.getTestElement(this.forwardingItem);
+  }
+
+  public getChangeButton() {
+    return cy.getTestElement(this.changeButton);
+  }
+
+  public getZufiSearch() {
+    return cy.getTestElement(this.zufiSearch);
+  }
+}
diff --git a/alfa-client/apps/alfa-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-forward-fail.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-forwarding-by-email-fail.cy.ts
similarity index 76%
rename from alfa-client/apps/alfa-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-forward-fail.cy.ts
rename to alfa-client/apps/alfa-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-forwarding-by-email-fail.cy.ts
index 717b730610c3be2da7d0f12e9c1f2783c553ae97..e90a6964108c52d02bd0503f615268fc50b0da5b 100644
--- a/alfa-client/apps/alfa-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-forward-fail.cy.ts
+++ b/alfa-client/apps/alfa-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-forwarding-by-email-fail.cy.ts
@@ -21,7 +21,8 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { VorgangForwardingE2EComponent } from '../../../components/vorgang/vorgang-forward.e2e.component';
+import { ForwardFormularE2EComponent } from '../../../components/vorgang/vorgang-forward-formular.e2e.component';
+import { ForwardingByEmailE2EComponent } from '../../../components/vorgang/vorgang-forward.e2e.component';
 import { VorgangListE2EComponent } from '../../../components/vorgang/vorgang-list.e2e.component';
 import { VorgangE2E, VorgangStatusE2E, vorgangStatusLabelE2E } from '../../../model/vorgang';
 import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.po';
@@ -32,12 +33,12 @@ import { FORWARDING_INVALID_EMAIL } from '../../../support/data.util';
 import { loginAsEmil } from '../../../support/user-util';
 import { createVorgang, initVorgang } from '../../../support/vorgang-util';
 
-describe.skip('{TODO: need to fix with a mock} Vorgang forwarding fail', () => {
+describe.skip('{TODO: need to fix with a mock} Vorgang forwarding by email fail', () => {
   const mainPage: MainPage = new MainPage();
   const vorgangList: VorgangListE2EComponent = mainPage.getVorgangList();
 
   const vorgangPage: VorgangPage = new VorgangPage();
-  const forwardingContainer: VorgangForwardingE2EComponent = vorgangPage.getForwardingContainer();
+  const forwardingByEmailContainer: ForwardingByEmailE2EComponent = vorgangPage.getForwardingByEmailContainer();
 
   const vorgang: VorgangE2E = createVorgang();
 
@@ -60,20 +61,20 @@ describe.skip('{TODO: need to fix with a mock} Vorgang forwarding fail', () => {
       exist(vorgangPage.getVorgangDetailHeader().getRoot());
     });
 
-    it('should show forwarding', () => {
-      exist(forwardingContainer.getRoot());
+    it('should show forwarding by email', () => {
+      exist(forwardingByEmailContainer.getRoot());
     });
   });
 
   describe('fill forward formular', () => {
     it('should show spinner with text on valid formular', () => {
-      const forwardForumlar = forwardingContainer.getFormular();
+      const forwardForumlar: ForwardFormularE2EComponent = forwardingByEmailContainer.getFormular();
       forwardForumlar.getZustaendigeStelle().clear().type(FORWARDING_INVALID_EMAIL);
       forwardForumlar.getPasswort().clear().type('validespasswort');
 
-      forwardForumlar.forward();
+      forwardForumlar.getForwardButton().click();
 
-      exist(forwardingContainer.getSpinner());
+      exist(forwardingByEmailContainer.getSpinner());
     });
   });
 
@@ -81,22 +82,19 @@ describe.skip('{TODO: need to fix with a mock} Vorgang forwarding fail', () => {
     it('should have status ' + vorgangStatusLabelE2E[VorgangStatusE2E.IN_BEARBEITUNG], () => {
       waitForSpinnerToDisappear();
 
-      haveText(
-        vorgangPage.getVorgangDetailHeader().getStatus(),
-        vorgangStatusLabelE2E[VorgangStatusE2E.IN_BEARBEITUNG],
-      );
+      haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.IN_BEARBEITUNG]);
     });
 
     it('should show forward fail text', () => {
-      exist(forwardingContainer.getForwardingErrorMessage());
+      exist(forwardingByEmailContainer.getForwardingErrorMessage());
     });
 
     it('should NOT show "mark as success" button', () => {
-      notExist(forwardingContainer.getMarkAsSuccessButton());
+      notExist(forwardingByEmailContainer.getMarkAsSuccessButton());
     });
 
     it('should show formular', () => {
-      exist(forwardingContainer.getFormular().getRoot());
+      exist(forwardingByEmailContainer.getFormular().getRoot());
     });
   });
 });
diff --git a/alfa-client/apps/alfa-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-forwarding-failed-cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-forwarding-by-email-failed.cy.ts
similarity index 80%
rename from alfa-client/apps/alfa-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-forwarding-failed-cy.ts
rename to alfa-client/apps/alfa-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-forwarding-by-email-failed.cy.ts
index f9b5af08c1bffc8e87594aa775c383a222255876..8a9bc49f7aa34bf2e1f47da5d31419bf891ea3b9 100644
--- a/alfa-client/apps/alfa-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-forwarding-failed-cy.ts
+++ b/alfa-client/apps/alfa-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-forwarding-by-email-failed.cy.ts
@@ -21,7 +21,8 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { VorgangForwardingE2EComponent } from '../../../components/vorgang/vorgang-forward.e2e.component';
+import { ForwardFormularE2EComponent } from '../../../components/vorgang/vorgang-forward-formular.e2e.component';
+import { ForwardingByEmailE2EComponent } from '../../../components/vorgang/vorgang-forward.e2e.component';
 import { VorgangListE2EComponent } from '../../../components/vorgang/vorgang-list.e2e.component';
 import { VorgangE2E, VorgangStatusE2E, vorgangStatusLabelE2E } from '../../../model/vorgang';
 import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.po';
@@ -32,12 +33,12 @@ import { FORWARDING_TEST_EMAIL } from '../../../support/data.util';
 import { loginAsEmil } from '../../../support/user-util';
 import { createVorgang, initVorgang } from '../../../support/vorgang-util';
 
-describe('Vorgang forwarding failed', () => {
+describe.skip('{TODO: needs fixing} Vorgang forwarding by email failed', () => {
   const mainPage: MainPage = new MainPage();
   const vorgangList: VorgangListE2EComponent = mainPage.getVorgangList();
 
   const vorgangPage: VorgangPage = new VorgangPage();
-  const forwardingContainer: VorgangForwardingE2EComponent = vorgangPage.getForwardingContainer();
+  const forwardingContainer: ForwardingByEmailE2EComponent = vorgangPage.getForwardingByEmailContainer();
 
   const vorgang: VorgangE2E = createVorgang();
 
@@ -69,11 +70,11 @@ describe('Vorgang forwarding failed', () => {
 
   describe('fill forward formular', () => {
     it('should show spinner with text on valid formular', { defaultCommandTimeout: 30000 }, () => {
-      const formular = forwardingContainer.getFormular();
+      const formular: ForwardFormularE2EComponent = forwardingContainer.getFormular();
       formular.getZustaendigeStelle().clear().type(FORWARDING_TEST_EMAIL);
       formular.getPasswort().clear().type('validespasswort');
 
-      formular.forward();
+      formular.getForwardButton().click();
 
       exist(forwardingContainer.getSpinner());
     });
@@ -83,10 +84,7 @@ describe('Vorgang forwarding failed', () => {
     it('should have status ' + vorgangStatusLabelE2E[VorgangStatusE2E.WEITERGELEITET], () => {
       waitForSpinnerToDisappear();
 
-      haveText(
-        vorgangPage.getVorgangDetailHeader().getStatus(),
-        vorgangStatusLabelE2E[VorgangStatusE2E.WEITERGELEITET],
-      );
+      haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.WEITERGELEITET]);
     });
 
     it('should show forward success text', () => {
@@ -121,17 +119,11 @@ describe('Vorgang forwarding failed', () => {
   });
 
   describe('switch to list view', () => {
-    it(
-      'should have status ' + vorgangStatusLabelE2E[VorgangStatusE2E.IN_BEARBEITUNG] + ' in list',
-      () => {
-        vorgangPage.getSubnavigation().getBackButton().click();
-        waitForSpinnerToDisappear();
-
-        haveText(
-          vorgangList.getListItem(vorgang.name).getStatus(),
-          vorgangStatusLabelE2E[VorgangStatusE2E.IN_BEARBEITUNG],
-        );
-      },
-    );
+    it('should have status ' + vorgangStatusLabelE2E[VorgangStatusE2E.IN_BEARBEITUNG] + ' in list', () => {
+      vorgangPage.getSubnavigation().getBackButton().click();
+      waitForSpinnerToDisappear();
+
+      haveText(vorgangList.getListItem(vorgang.name).getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.IN_BEARBEITUNG]);
+    });
   });
 });
diff --git a/alfa-client/apps/alfa-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-forwarding-by-email.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-forwarding-by-email.cy.ts
index f090dd3185bf81dffdb06b6f8f3dc48fc7f378a2..279337199a74e46b323388ba33ca09b47d7a80d6 100644
--- a/alfa-client/apps/alfa-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-forwarding-by-email.cy.ts
+++ b/alfa-client/apps/alfa-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-forwarding-by-email.cy.ts
@@ -21,32 +21,23 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { VorgangForwardingE2EComponent } from '../../../components/vorgang/vorgang-forward.e2e.component';
+import { ForwardingByEmailE2EComponent } from '../../../components/vorgang/vorgang-forward.e2e.component';
 import { VorgangListE2EComponent } from '../../../components/vorgang/vorgang-list.e2e.component';
 import { VorgangE2E, VorgangStatusE2E, vorgangStatusLabelE2E } from '../../../model/vorgang';
 import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.po';
 import { VorgangPage } from '../../../page-objects/vorgang.po';
 import { dropCollections } from '../../../support/cypress-helper';
 import { exist, haveText, haveValue, notExist } from '../../../support/cypress.util';
-import {
-  FORWARDING_INVALID_EMAIL,
-  FORWARDING_TEST_EMAIL,
-  VORGANG_ZUSTAENDIGE_STELLE_EMAIL,
-} from '../../../support/data.util';
+import { FORWARDING_INVALID_EMAIL, FORWARDING_TEST_EMAIL, VORGANG_ZUSTAENDIGE_STELLE_EMAIL } from '../../../support/data.util';
 import { loginAsEmil } from '../../../support/user-util';
-import {
-  buildVorgang,
-  createVorgang,
-  initVorgaenge,
-  objectIds,
-} from '../../../support/vorgang-util';
-
-describe.skip('Vorgang forward', () => {
+import { buildVorgang, createVorgang, initVorgaenge, objectIds } from '../../../support/vorgang-util';
+
+describe.skip('Vorgang forwarding by email', () => {
   const mainPage: MainPage = new MainPage();
   const vorgangList: VorgangListE2EComponent = mainPage.getVorgangList();
 
   const vorgangPage: VorgangPage = new VorgangPage();
-  const forwardingContainer: VorgangForwardingE2EComponent = vorgangPage.getForwardingContainer();
+  const forwardingContainer: ForwardingByEmailE2EComponent = vorgangPage.getForwardingByEmailContainer();
 
   const vorgang: VorgangE2E = { ...createVorgang(), name: 'TestVorgangRedirectSpinner' };
   const vorgangEmpty: VorgangE2E = buildVorgang(objectIds[0], 'TestVorgangRedirectEmpty');
@@ -77,10 +68,7 @@ describe.skip('Vorgang forward', () => {
     });
 
     it('should be prefilled', () => {
-      haveValue(
-        forwardingContainer.getFormular().getZustaendigeStelle(),
-        VORGANG_ZUSTAENDIGE_STELLE_EMAIL,
-      );
+      haveValue(forwardingContainer.getFormular().getZustaendigeStelle(), VORGANG_ZUSTAENDIGE_STELLE_EMAIL);
     });
   });
 
@@ -91,7 +79,7 @@ describe.skip('Vorgang forward', () => {
         forwardFormular.getZustaendigeStelle().clear().type(FORWARDING_INVALID_EMAIL); //TODO create valid email-address without adding it to landesnetzlist
         forwardFormular.getPasswort().clear().type('zukurz');
 
-        forwardFormular.forward();
+        forwardFormular.getForwardButton().click();
         waitForSpinnerToDisappear();
 
         exist(forwardFormular.getPasswortError());
@@ -101,7 +89,7 @@ describe.skip('Vorgang forward', () => {
         const forwardFormular = forwardingContainer.getFormular();
         forwardFormular.getZustaendigeStelle().clear().type(FORWARDING_INVALID_EMAIL);
 
-        forwardFormular.forward();
+        forwardFormular.getForwardButton().click();
         waitForSpinnerToDisappear();
 
         exist(forwardFormular.getZustaendigeStelleError());
@@ -114,7 +102,7 @@ describe.skip('Vorgang forward', () => {
         forwardFormular.getZustaendigeStelle().clear().type(FORWARDING_TEST_EMAIL);
         forwardFormular.getPasswort().clear();
 
-        forwardFormular.forward();
+        forwardFormular.getForwardButton().click();
 
         exist(forwardingContainer.getSpinner());
       });
@@ -122,18 +110,11 @@ describe.skip('Vorgang forward', () => {
   });
 
   describe('success forwarding', () => {
-    it(
-      'should have status ' + vorgangStatusLabelE2E[VorgangStatusE2E.WEITERGELEITET],
-      { defaultCommandTimeout: 30000 },
-      () => {
-        waitForSpinnerToDisappear();
+    it('should have status ' + vorgangStatusLabelE2E[VorgangStatusE2E.WEITERGELEITET], { defaultCommandTimeout: 30000 }, () => {
+      waitForSpinnerToDisappear();
 
-        haveText(
-          vorgangPage.getVorgangDetailHeader().getStatus(),
-          vorgangStatusLabelE2E[VorgangStatusE2E.WEITERGELEITET],
-        );
-      },
-    );
+      haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.WEITERGELEITET]);
+    });
 
     it('should show forward success text', () => {
       exist(forwardingContainer.getForwardingSuccessMessage());
@@ -156,18 +137,12 @@ describe.skip('Vorgang forward', () => {
   });
 
   describe('switch to list view', () => {
-    it(
-      'should have status ' + vorgangStatusLabelE2E[VorgangStatusE2E.WEITERGELEITET] + ' in list',
-      () => {
-        vorgangPage.getSubnavigation().getBackButton().click();
-        waitForSpinnerToDisappear();
+    it('should have status ' + vorgangStatusLabelE2E[VorgangStatusE2E.WEITERGELEITET] + ' in list', () => {
+      vorgangPage.getSubnavigation().getBackButton().click();
+      waitForSpinnerToDisappear();
 
-        haveText(
-          vorgangList.getListItem(vorgang.name).getStatus(),
-          vorgangStatusLabelE2E[VorgangStatusE2E.WEITERGELEITET],
-        );
-      },
-    );
+      haveText(vorgangList.getListItem(vorgang.name).getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.WEITERGELEITET]);
+    });
   });
 
   describe('change to non forwarding vorgang', () => {
diff --git a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-forwarding.cy.ts b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-forwarding.cy.ts
index 5130483917d42662bd3c4a806555f163d359514b..d91019905c1bc53a44fb0a28e0fb882a416933f3 100644
--- a/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-forwarding.cy.ts
+++ b/alfa-client/apps/alfa-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-forwarding.cy.ts
@@ -9,20 +9,25 @@ import { VorgangE2E } from '../../../model/vorgang';
 import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.po';
 import { VorgangPage } from '../../../page-objects/vorgang.po';
 import { dropCollections } from '../../../support/cypress-helper';
-import { exist } from '../../../support/cypress.util';
+import { beDisabled, contains, exist, notBeDisabled, notExist } from '../../../support/cypress.util';
 import { loginAsPeter, loginAsSabine } from '../../../support/user-util';
 import { createVorgang, initVorgaenge } from '../../../support/vorgang-util';
+import { ForwardingDialogE2EComponent } from 'apps/alfa-e2e/src/components/vorgang/vorgang-forwarding-dialog.e2e.component';
 
 registerLocaleData(localeDe, 'de', localeDeExtra);
 
-describe('Vorgang weiterleiten innerhalb der OzgCloud', () => {
+describe('Vorgang weiterleiten', () => {
   const vorgangNavigator: E2EVorgangNavigator = new E2EVorgangNavigator();
   const vorgangVerifier: E2EVorgangVerifier = new E2EVorgangVerifier();
 
   const mainPage: MainPage = new MainPage();
   const vorgangList: VorgangListE2EComponent = mainPage.getVorgangList();
 
+  const organisationsEinheitName = 'Landeshauptstadt Kiel - Pries-Friedrichsort Stadtteilamt';
+  const organisationsEinheitAddress = 'An der Schanze 45, 24159 Kiel';
+
   const vorgangPage: VorgangPage = new VorgangPage();
+  const forwardingDialog: ForwardingDialogE2EComponent = vorgangPage.getForwardingDialogContainer();
   const vorgangFormularButtons: VorgangFormularButtonsE2EComponent = vorgangPage.getFormularButtons();
 
   const vorgangWeiterleiten: VorgangE2E = { ...createVorgang(), name: 'Weiterleitung' };
@@ -48,14 +53,75 @@ describe('Vorgang weiterleiten innerhalb der OzgCloud', () => {
       vorgangVerifier.verifyForwardingButtonExists();
     });
 
-    it('should not display Weiterleiten button in Status Angenommen', () => {
+    it('should open forwarding dialog on forward button click', () => {
+      vorgangFormularButtons.getForwardButton().click();
+
+      exist(forwardingDialog.getRoot());
+    });
+
+    it('should have zufi search', () => {
+      exist(forwardingDialog.getZufiSearch());
+    });
+
+    it('should have disabled forwarding button', () => {
+      beDisabled(forwardingDialog.getForwardingButton());
+    });
+
+    it('should close dialog on escape', () => {
+      forwardingDialog.getRoot().type('{esc}');
+
+      notExist(forwardingDialog.getRoot());
+    });
+
+    it('should close dialog on abbrechen button', () => {
+      vorgangFormularButtons.getForwardButton().click();
+      forwardingDialog.getCancelButton().click();
+
+      notExist(forwardingDialog.getRoot());
+    });
+
+    it('should close dialog on x icon', () => {
+      vorgangFormularButtons.getForwardButton().click();
+      forwardingDialog.getCancelIconButton().click();
+
+      notExist(forwardingDialog.getRoot());
+    });
+
+    it('should show forwarding item on search select', () => {
+      vorgangFormularButtons.getForwardButton().click();
+      forwardingDialog.search(organisationsEinheitName);
+      forwardingDialog.clickSearchEntry(0);
+
+      exist(forwardingDialog.getForwardingItem());
+      contains(forwardingDialog.getForwardingItem(), organisationsEinheitName);
+      contains(forwardingDialog.getForwardingItem(), organisationsEinheitAddress);
+    });
+
+    it('should not show zufi search on search select', () => {
+      notExist(forwardingDialog.getZufiSearch());
+    });
+
+    it('should not disable forwarding button on search select', () => {
+      notBeDisabled(forwardingDialog.getForwardingButton());
+    });
+
+    it('should clear forwarding item on change button click', () => {
+      forwardingDialog.getChangeButton().click();
+
+      notExist(forwardingDialog.getForwardingItem());
+      exist(forwardingDialog.getZufiSearch());
+      beDisabled(forwardingDialog.getForwardingButton());
+    });
+
+    it('should not display Weiterleiten button in status Angenommen', () => {
+      forwardingDialog.getCancelButton().click();
       vorgangFormularButtons.getAnnehmenButton().click();
       waitForSpinnerToDisappear();
 
       vorgangVerifier.verifyNoForwardingButtonExists();
     });
 
-    it('should not display Weiterleiten button in Status In Bearbeitung', () => {
+    it('should not display Weiterleiten button in status In Bearbeitung', () => {
       vorgangFormularButtons.getBearbeitenButton().click();
       waitForSpinnerToDisappear();
 
@@ -68,6 +134,9 @@ describe('Vorgang weiterleiten innerhalb der OzgCloud', () => {
       initVorgaenge([vorgangWeiterleiten]);
 
       loginAsPeter();
+
+      waitForSpinnerToDisappear();
+      exist(vorgangList.getRoot());
     });
 
     it('should display Weiterleiten button in Status In Neu', () => {
diff --git a/alfa-client/apps/alfa-e2e/src/page-objects/vorgang.po.ts b/alfa-client/apps/alfa-e2e/src/page-objects/vorgang.po.ts
index 6a1d1b397b3e0a9eb91362cd0220230b67a5db14..8a2647fd1d0a8b47aaf41cd8e007177991b1fe1f 100644
--- a/alfa-client/apps/alfa-e2e/src/page-objects/vorgang.po.ts
+++ b/alfa-client/apps/alfa-e2e/src/page-objects/vorgang.po.ts
@@ -33,7 +33,8 @@ import { VorgangBescheideE2EComponent } from '../components/vorgang/vorgang-besc
 import { VorgangDetailHeaderE2EComponent } from '../components/vorgang/vorgang-detail-header.e2e.component';
 import { VorgangFormularButtonsE2EComponent } from '../components/vorgang/vorgang-formular-buttons.e2e.components';
 import { VorgangFormularDatenE2EComponent } from '../components/vorgang/vorgang-formular.e2e.component';
-import { VorgangForwardingE2EComponent } from '../components/vorgang/vorgang-forward.e2e.component';
+import { ForwardingByEmailE2EComponent } from '../components/vorgang/vorgang-forward.e2e.component';
+import { ForwardingDialogE2EComponent } from '../components/vorgang/vorgang-forwarding-dialog.e2e.component';
 import { VorgangMoreMenuE2EComponent } from '../components/vorgang/vorgang-more-menu.e2e.components';
 import { VorgangSubnavigationE2EComponent } from '../components/vorgang/vorgang-subnavigation';
 import { VorgangZusammenarbeitE2EComponent } from '../components/vorgang/vorgang-zusammenarbeit.e2e.component';
@@ -49,7 +50,8 @@ export class VorgangPage {
   private readonly bescheidWizard: VorgangBescheidWizardE2EComponent = new VorgangBescheidWizardE2EComponent();
   private readonly bescheide: VorgangBescheideE2EComponent = new VorgangBescheideE2EComponent();
   private readonly wiedervorlagen: WiedervorlagenInVorgangE2EComponent = new WiedervorlagenInVorgangE2EComponent();
-  private readonly forwardingContainer: VorgangForwardingE2EComponent = new VorgangForwardingE2EComponent();
+  private readonly forwardingDialogContainer: ForwardingDialogE2EComponent = new ForwardingDialogE2EComponent();
+  private readonly forwardingByEmailContainer: ForwardingByEmailE2EComponent = new ForwardingByEmailE2EComponent();
   private readonly attachmentContainer: AttachmentContainerE2EComponent = new AttachmentContainerE2EComponent();
   private readonly kommentarContainer: KommentarListInVorgangE2EComponent = new KommentarListInVorgangE2EComponent();
   private readonly postfachMailContainer: PostfachMailE2EComponent = new PostfachMailE2EComponent();
@@ -66,8 +68,12 @@ export class VorgangPage {
     return this.kommentarContainer;
   }
 
-  public getForwardingContainer(): VorgangForwardingE2EComponent {
-    return this.forwardingContainer;
+  public getForwardingDialogContainer(): ForwardingDialogE2EComponent {
+    return this.forwardingDialogContainer;
+  }
+
+  public getForwardingByEmailContainer(): ForwardingByEmailE2EComponent {
+    return this.forwardingByEmailContainer;
   }
 
   public getSubnavigation(): VorgangSubnavigationE2EComponent {
diff --git a/alfa-client/apps/alfa-e2e/src/support/cypress.util.ts b/alfa-client/apps/alfa-e2e/src/support/cypress.util.ts
index 3dbd6155939b778a411f9b2fd18822286feaf958..f62a66e73e504ddd9952afd438ecdd7cf242866a 100644
--- a/alfa-client/apps/alfa-e2e/src/support/cypress.util.ts
+++ b/alfa-client/apps/alfa-e2e/src/support/cypress.util.ts
@@ -97,6 +97,14 @@ export function notBeChecked(element: any): void {
   element.should('not.be.checked');
 }
 
+export function beDisabled(element: any): void {
+  element.should('be.disabled');
+}
+
+export function notBeDisabled(element: any): void {
+  element.should('not.be.disabled');
+}
+
 //TODO: "first()" rausnehmen -> im html eine entprechende data-test-id ansprechen?! | trennen in "get" und "verify"
 export function shouldFirstContains(element: any, containing: string) {
   element.first().should('exist').contains(containing);
diff --git a/alfa-client/libs/design-component/src/lib/cancel-dialog-button/cancel-dialog-button.component.spec.ts b/alfa-client/libs/design-component/src/lib/cancel-dialog-button/cancel-dialog-button.component.spec.ts
index 6adabee9688a1af7ac880621d85af1a90e04c326..8a67d24b410454a80ae2d62f7bbbd6a86a08fd9e 100644
--- a/alfa-client/libs/design-component/src/lib/cancel-dialog-button/cancel-dialog-button.component.spec.ts
+++ b/alfa-client/libs/design-component/src/lib/cancel-dialog-button/cancel-dialog-button.component.spec.ts
@@ -12,8 +12,8 @@ describe('CancelDialogButtonComponent', () => {
 
   let dialogService: Mock<OzgcloudDialogService>;
 
-  const cancelDialogButton: string = getDataTestIdOf('cancel-dialog-button');
-  const cancelDialogIconButton: string = getDataTestIdOf('cancel-dialog-icon-button');
+  const cancelDialogButton: string = getDataTestIdOf('cancel-dialog-button-container');
+  const cancelDialogIconButton: string = getDataTestIdOf('cancel-dialog-icon-button-container');
 
   beforeEach(async () => {
     dialogService = mock(OzgcloudDialogService);
diff --git a/alfa-client/libs/design-component/src/lib/cancel-dialog-button/cancel-dialog-button.component.ts b/alfa-client/libs/design-component/src/lib/cancel-dialog-button/cancel-dialog-button.component.ts
index 7c41c1bbcdc747090c0aa5bfc64185c577c99fe3..df1f5fa4b1732a9b60879f6353ec9f006832cb5f 100644
--- a/alfa-client/libs/design-component/src/lib/cancel-dialog-button/cancel-dialog-button.component.ts
+++ b/alfa-client/libs/design-component/src/lib/cancel-dialog-button/cancel-dialog-button.component.ts
@@ -14,7 +14,7 @@ import { ButtonComponent, CloseIconComponent, TooltipDirective } from '@ods/syst
         variant="ghost"
         size="fit"
         dataTestId="cancel-dialog-icon-button"
-        data-test-id="cancel-dialog-icon-button"
+        data-test-id="cancel-dialog-icon-button-container"
       >
         <ng-container icon>
           <ods-close-icon class="fill-primary" />
@@ -26,7 +26,7 @@ import { ButtonComponent, CloseIconComponent, TooltipDirective } from '@ods/syst
         variant="outline"
         text="Abbrechen"
         dataTestId="cancel-dialog-button"
-        data-test-id="cancel-dialog-button"
+        data-test-id="cancel-dialog-button-container"
       />
     }`,
 })