diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationITCase.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationITCase.java
index 8c5abd19a98524ec9d5461b7bdfd0e506aa72e14..edbba916258e4cb2e4b005534b93a15559291d9a 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationITCase.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationITCase.java
@@ -49,8 +49,11 @@ import org.mockito.Captor;
 import org.mockito.Mock;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
 import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.context.TestConfiguration;
 import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.context.annotation.Bean;
 import org.springframework.data.mongodb.core.MongoOperations;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
@@ -70,6 +73,7 @@ import de.ozgcloud.collaboration.CollaborationRequest;
 import de.ozgcloud.collaboration.CollaborationService;
 import de.ozgcloud.collaboration.CollaborationServiceGrpc.CollaborationServiceBlockingStub;
 import de.ozgcloud.collaboration.GrpcGetFileContentRequest;
+import de.ozgcloud.collaboration.fachstelle.Fachstelle.FachstelleType;
 import de.ozgcloud.collaboration.request.CollaborationRequestId;
 import de.ozgcloud.collaboration.request.CollaborationRequestServiceGrpc.CollaborationRequestServiceBlockingStub;
 import de.ozgcloud.collaboration.request.GrpcFindRequestsRequest;
@@ -99,13 +103,17 @@ import de.ozgcloud.vorgang.vorgang.VorgangTestFactory;
 import de.ozgcloud.vorgang.vorgang.ZustaendigeStelleTestFactory;
 import io.grpc.Status;
 import io.grpc.StatusRuntimeException;
+import net.devh.boot.grpc.client.autoconfigure.GrpcClientAutoConfiguration;
 import net.devh.boot.grpc.client.inject.GrpcClient;
+import net.devh.boot.grpc.server.autoconfigure.GrpcServerAutoConfiguration;
+import net.devh.boot.grpc.server.autoconfigure.GrpcServerFactoryAutoConfiguration;
 
 @SpringBootTest(properties = {
 		"grpc.server.inProcessName=test",
 		"grpc.client.vorgang-manager.address=in-process:test",
 		"grpc.client.ozgcloud-command-manager.address=in-process:test",
 		"grpc.client.file-manager.address=in-process:test",
+		"grpc.client.zufi-manager.address=in-process:test",
 		"grpc.client.inProcess.address=in-process:test",
 		"grpc.client.pluto.address=in-process:test"
 })
@@ -117,7 +125,7 @@ class CollaborationITCase {
 	private static final String FIELD_COLLABORATION_VORGANG_ID = "collaborationVorgangId";
 	private static final String TITEL = "Collaboration Vorgang";
 	private static final String BESCHREIBUNG = "Beschreibung der Anfrage";
-	private static final String MUK_POSTFACH_ID = UUID.randomUUID().toString();
+	private static final String ZUFI_ID = UUID.randomUUID().toString();
 
 	@Autowired
 	private CommandService commandService;
@@ -218,6 +226,10 @@ class CollaborationITCase {
 	}
 
 	private CreateCommandRequest buildCreateCollaborationVorgangCommand(String vorgangId, int collaborationLevel) {
+		return buildCreateCollaborationVorgangCommand(vorgangId, collaborationLevel, ZUFI_ID);
+	}
+
+	private CreateCommandRequest buildCreateCollaborationVorgangCommand(String vorgangId, int collaborationLevel, String zustaendigeStelleId) {
 		return CreateCommandRequest.builder()
 				.callContext(CallContext.builder().client("test").build())
 				.vorgangId(vorgangId)
@@ -227,7 +239,7 @@ class CollaborationITCase {
 						"titel", TITEL,
 						"beschreibung", BESCHREIBUNG,
 						"collaborationLevel", collaborationLevel,
-						"zustaendigeStelle", MUK_POSTFACH_ID))
+						"zustaendigeStelle", zustaendigeStelleId))
 				.build();
 	}
 
@@ -255,8 +267,7 @@ class CollaborationITCase {
 
 		@Test
 		void shouldSetCollaborationVorgangId() {
-			var command = commandService.createCommand(
-					buildCreateCollaborationVorgangCommand(vorgangId, CreateCollaborationVorgangRequestTestFactory.COLLABORATION_LEVEL));
+			var command = createCommand();
 
 			waitUntilCommandHasStatus(command.getId(), CommandStatus.FINISHED);
 
@@ -267,9 +278,7 @@ class CollaborationITCase {
 
 		@Test
 		void shouldCreateCollaborationVorgang() {
-			var command = commandService.createCommand(
-					buildCreateCollaborationVorgangCommand(vorgangId,
-							CreateCollaborationVorgangRequestTestFactory.COLLABORATION_LEVEL));
+			var command = createCommand();
 
 			waitUntilCommandHasStatus(command.getId(), CommandStatus.FINISHED);
 
@@ -277,10 +286,16 @@ class CollaborationITCase {
 			assertThat(collaborationVorgang.getHeader()).extracting(VorgangHead::getCollaborationLevel)
 					.isEqualTo(CreateCollaborationVorgangRequestTestFactory.COLLABORATION_LEVEL);
 			assertThat(collaborationVorgang.getHeader()).extracting(VorgangHead::getOrganisationsEinheitId)
-					.isEqualTo(MUK_POSTFACH_ID);
+					.isEqualTo(OrganisationsEinheitGrpcServiceMock.ORGANISATIONS_EINHEIT_ID);
 			assertThat(collaborationVorgang.getClientAttributes()).isEmpty();
 		}
 
+		private Command createCommand() {
+			return commandService.createCommand(
+					buildCreateCollaborationVorgangCommand(vorgangId,
+							CreateCollaborationVorgangRequestTestFactory.COLLABORATION_LEVEL, OrganisationsEinheitGrpcServiceMock.ID));
+		}
+
 		private Vorgang loadCollaborationVorgang(String sourceVorgangId) {
 			var collaborationVorgangId = loadCollaborationRequest(sourceVorgangId).getFirst().getItem().get(FIELD_COLLABORATION_VORGANG_ID);
 			return mongoOperations.findById(collaborationVorgangId, Vorgang.class);
@@ -306,7 +321,7 @@ class CollaborationITCase {
 
 			@Test
 			void shouldCreateCollaborationRequest() {
-				var command = commandService.createCommand(buildCreateCollaborationVorgangCommand(vorgangId, COLLABORATION_LEVEL));
+				var command = createCommand();
 
 				waitUntilCommandHasStatus(command.getId(), CommandStatus.FINISHED);
 
@@ -317,19 +332,19 @@ class CollaborationITCase {
 
 			@Test
 			void shouldSendPostfachNachricht() {
-				var command = commandService.createCommand(buildCreateCollaborationVorgangCommand(vorgangId, COLLABORATION_LEVEL));
+				var command = createCommand();
 
 				waitUntilCommandHasStatus(command.getId(), CommandStatus.FINISHED);
 
 				verify(postfachRemoteService).sendMessage(postfachNachrichtCaptor.capture());
 				assertThat(postfachNachrichtCaptor.getValue().getPostfachAddress()).extracting(PostfachAddress::getIdentifier)
-						.hasToString(MUK_POSTFACH_ID);
+						.hasToString(FachstelleGrpcServiceMock.MUK_ID);
 			}
 
 			@Test
 			void shouldDeleteCollaborationRequest() {
 				doThrow(TechnicalException.class).when(postfachRemoteService).sendMessage(any());
-				var command = commandService.createCommand(buildCreateCollaborationVorgangCommand(vorgangId, COLLABORATION_LEVEL));
+				var command = createCommand();
 
 				waitUntilCommandHasStatus(command.getId(), CommandStatus.ERROR);
 
@@ -340,13 +355,18 @@ class CollaborationITCase {
 		@Test
 		void shouldFailOnMissingFachstelle() {
 			ReflectionTestUtils.setField(collaborationService, "urlProvider", Optional.empty());
-			var command = commandService.createCommand(buildCreateCollaborationVorgangCommand(vorgangId, COLLABORATION_LEVEL));
+			var command = createCommand();
 
 			waitUntilCommandHasStatus(command.getId(), CommandStatus.ERROR);
 
 			command = mongoOperations.findById(command.getId(), Command.class);
 			assertThat(command.getErrorMessage()).contains("Fachstelle not configured.");
 		}
+
+		private Command createCommand() {
+			return commandService
+					.createCommand(buildCreateCollaborationVorgangCommand(vorgangId, COLLABORATION_LEVEL, FachstelleGrpcServiceMock.ZUFI_ID));
+		}
 	}
 
 	@DisplayName("Collaboration requests")
@@ -361,9 +381,12 @@ class CollaborationITCase {
 
 		public static final String TITEL = LoremIpsum.getInstance().getWords(5);
 		public static final String BESCHREIBUNG = LoremIpsum.getInstance().getWords(10);
-		public static final String ZUSTAENDIGE_STELLE = UUID.randomUUID().toString();
 		public static final String COLLABORATION_VORGANG_ID = UUID.randomUUID().toString();
-		public static final int COLLABORATION_lEVEL = 1;
+		public static final int COLLABORATION_LEVEL = 1;
+
+		private static final String TECHNICAL_ID = OrganisationsEinheitGrpcServiceMock.ID;
+		private static final String SUBJECT_ID = OrganisationsEinheitGrpcServiceMock.ORGANISATIONS_EINHEIT_ID;
+		private static final FachstelleType TYPE = FachstelleType.ORGANISATIONS_EINHEIT;
 
 		private final Vorgang vorgang = VorgangTestFactory.create();
 
@@ -371,11 +394,14 @@ class CollaborationITCase {
 				CollaborationRequest.PROPERTY_COMMAND_ID, CommandTestFactory.ID,
 				CollaborationRequest.PROPERTY_VORGANG_ID, VorgangTestFactory.ID,
 				CollaborationRequest.PROPERTY_COLLABORATION_VORGANG_ID, COLLABORATION_VORGANG_ID,
-				CollaborationRequest.PROPERTY_COLLABORATION_LEVEL, String.valueOf(COLLABORATION_lEVEL),
+				CollaborationRequest.PROPERTY_COLLABORATION_LEVEL, String.valueOf(COLLABORATION_LEVEL),
 				CollaborationRequest.PROPERTY_CREATED_BY, CommandTestFactory.CREATED_BY,
 				CollaborationRequest.PROPERTY_TITEL, TITEL,
 				CollaborationRequest.PROPERTY_BESCHREIBUNG, BESCHREIBUNG,
-				CollaborationRequest.PROPERTY_ZUSTAENDIGE_STELLE, ZUSTAENDIGE_STELLE);
+				CollaborationRequest.PROPERTY_ZUSTAENDIGE_STELLE, Map.of(
+						de.ozgcloud.collaboration.fachstelle.Fachstelle.PROPERTY_TECHNICAL_ID, TECHNICAL_ID,
+						de.ozgcloud.collaboration.fachstelle.Fachstelle.PROPERTY_SUBJECT_ID, SUBJECT_ID,
+						de.ozgcloud.collaboration.fachstelle.Fachstelle.PROPERTY_TYPE, TYPE.name()));
 
 		private final VorgangAttachedItem vorgangAttachedItem = VorgangAttachedItemTestFactory.createBuilder()
 				.id(null)
@@ -419,8 +445,8 @@ class CollaborationITCase {
 					assertThat(grpcCollaborationRequest.getId()).isEqualTo(savedCollaborationRequest.getId());
 					assertThat(grpcCollaborationRequest.getTitel()).isEqualTo(TITEL);
 					assertThat(grpcCollaborationRequest.getBeschreibung()).isEqualTo(BESCHREIBUNG);
-					assertThat(grpcCollaborationRequest.getZustaendigeStelle()).isEqualTo(ZUSTAENDIGE_STELLE);
-					assertThat(grpcCollaborationRequest.getCollaborationLevel()).isEqualTo(COLLABORATION_lEVEL);
+					assertThat(grpcCollaborationRequest.getZustaendigeStelle()).isEqualTo(TECHNICAL_ID);
+					assertThat(grpcCollaborationRequest.getCollaborationLevel()).isEqualTo(COLLABORATION_LEVEL);
 					assertThat(grpcCollaborationRequest.getCreatedBy()).isEqualTo(CommandTestFactory.CREATED_BY);
 				});
 			}
@@ -470,4 +496,22 @@ class CollaborationITCase {
 			return collaborationRequestStub.withInterceptors(new TestCallContextAttachingInterceptor());
 		}
 	}
+
+	@TestConfiguration
+	@ImportAutoConfiguration({
+			GrpcServerAutoConfiguration.class,
+			GrpcServerFactoryAutoConfiguration.class,
+			GrpcClientAutoConfiguration.class })
+	static class ZufiServerTestConfiguration {
+
+		@Bean
+		FachstelleGrpcServiceMock fachstelleGrpcServiceMock() {
+			return new FachstelleGrpcServiceMock();
+		}
+
+		@Bean
+		OrganisationsEinheitGrpcServiceMock organisationsEinheitGrpcServiceMock() {
+			return new OrganisationsEinheitGrpcServiceMock();
+		}
+	}
 }
\ No newline at end of file
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/FachstelleGrpcServiceMock.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/FachstelleGrpcServiceMock.java
new file mode 100644
index 0000000000000000000000000000000000000000..48ef451cb7f2c513fe9089f39e5e0d261fa5d260
--- /dev/null
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/FachstelleGrpcServiceMock.java
@@ -0,0 +1,51 @@
+package de.ozgcloud.vorgang.collaboration;
+
+import java.util.UUID;
+
+import com.thedeanda.lorem.LoremIpsum;
+
+import de.ozgcloud.zufi.grpc.fachstelle.FachstelleServiceGrpc.FachstelleServiceImplBase;
+import de.ozgcloud.zufi.grpc.fachstelle.GrpcFachstelle;
+import de.ozgcloud.zufi.grpc.fachstelle.GrpcFachstelleGetRequest;
+import de.ozgcloud.zufi.grpc.fachstelle.GrpcFachstelleGetResponse;
+import io.grpc.stub.StreamObserver;
+import net.devh.boot.grpc.server.service.GrpcService;
+
+@GrpcService
+class FachstelleGrpcServiceMock extends FachstelleServiceImplBase {
+
+	static final String ZUFI_ID = UUID.randomUUID().toString();
+	static final String MUK_ID = UUID.randomUUID().toString();
+	public static final String FIRMEN_NAME = LoremIpsum.getInstance().getWords(2);
+	public static final String RECHTSFORM = LoremIpsum.getInstance().getWords(1);
+	public static final String RECHTSFORM_TEXT = LoremIpsum.getInstance().getWords(1);
+	public static final String REGISTER_NUMMER = UUID.randomUUID().toString();
+	public static final String REGISTER_ART = LoremIpsum.getInstance().getWords(1);
+	public static final String EMAIL_ADRESSE = LoremIpsum.getInstance().getEmail();
+	public static final String ANSCHRIFT = LoremIpsum.getInstance().getWords(5);
+
+	@Override
+	public void getById(GrpcFachstelleGetRequest request, StreamObserver<GrpcFachstelleGetResponse> responseObserver) {
+		if (request.getId().equals(ZUFI_ID)) {
+			responseObserver.onNext(buildFachstelleGetResponse());
+			responseObserver.onCompleted();
+		} else {
+			throw new AssertionError("Expected zufiId %s. But actual zufiId was %s.".formatted(ZUFI_ID, request.getId()));
+		}
+	}
+
+	GrpcFachstelleGetResponse buildFachstelleGetResponse() {
+		return GrpcFachstelleGetResponse.newBuilder()
+				.setFachstelle(GrpcFachstelle.newBuilder()
+						.setId(ZUFI_ID)
+						.setMukId(MUK_ID)
+						.setFirmenName(FIRMEN_NAME)
+						.setRechtsform(RECHTSFORM)
+						.setRechtsformText(RECHTSFORM_TEXT)
+						.setRegisterNummer(REGISTER_NUMMER)
+						.setRegisterArt(REGISTER_ART)
+						.setEmailAdresse(EMAIL_ADRESSE)
+						.setAnschrift(ANSCHRIFT))
+				.build();
+	}
+}
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/OrganisationsEinheitGrpcServiceMock.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/OrganisationsEinheitGrpcServiceMock.java
new file mode 100644
index 0000000000000000000000000000000000000000..113f42dea871147a33ca1ae4902095903e4cba59
--- /dev/null
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/OrganisationsEinheitGrpcServiceMock.java
@@ -0,0 +1,59 @@
+package de.ozgcloud.vorgang.collaboration;
+
+import java.util.Random;
+import java.util.UUID;
+
+import com.thedeanda.lorem.LoremIpsum;
+
+import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcAnschrift;
+import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcOrganisationsEinheit;
+import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcOrganisationsEinheitGetRequest;
+import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcOrganisationsEinheitGetResponse;
+import de.ozgcloud.zufi.grpc.organisationseinheit.GrpcXzufiId;
+import de.ozgcloud.zufi.grpc.organisationseinheit.OrganisationsEinheitServiceGrpc.OrganisationsEinheitServiceImplBase;
+import io.grpc.stub.StreamObserver;
+import net.devh.boot.grpc.server.service.GrpcService;
+
+@GrpcService
+public class OrganisationsEinheitGrpcServiceMock extends OrganisationsEinheitServiceImplBase {
+	public static final String ID = UUID.randomUUID().toString();
+	public static final String ORGANISATIONS_EINHEIT_ID = UUID.randomUUID().toString();
+	public static final String SCHEME_AGENCY_ID = UUID.randomUUID().toString();
+	public static final GrpcXzufiId XZUFI_ID = GrpcXzufiId.newBuilder().setId(ORGANISATIONS_EINHEIT_ID).setSchemeAgencyId(SCHEME_AGENCY_ID).build();
+	public static final String NAME = LoremIpsum.getInstance().getName();
+	public static final String SYNONYME = LoremIpsum.getInstance().getWords(5);
+	public static final String PLZ = LoremIpsum.getInstance().getZipCode();
+	public static final String ORT = LoremIpsum.getInstance().getCity();
+	public static final String STRASSE = LoremIpsum.getInstance().getWords(2);
+	public static final String HAUSNUMMER = String.valueOf(new Random().nextInt());
+	public static final GrpcAnschrift ANSCHRIFT = GrpcAnschrift.newBuilder()
+			.setStrasse(STRASSE)
+			.setHausnummer(HAUSNUMMER)
+			.setPlz(PLZ)
+			.setOrt(ORT)
+			.build();
+	public static final String VORGANG_MANAGER_ADDRESS = LoremIpsum.getInstance().getUrl();
+
+	@Override
+	public void getById(GrpcOrganisationsEinheitGetRequest request, StreamObserver<GrpcOrganisationsEinheitGetResponse> responseObserver) {
+
+		if (request.getId().equals(ID)) {
+			responseObserver.onNext(buildOrganisationsEinheitGetResponse());
+			responseObserver.onCompleted();
+		} else {
+			throw new AssertionError("Expected id %s. But actual id was %s.".formatted(ID, request.getId()));
+		}
+	}
+
+	GrpcOrganisationsEinheitGetResponse buildOrganisationsEinheitGetResponse() {
+		return GrpcOrganisationsEinheitGetResponse.newBuilder().setOrganisationsEinheit(
+				GrpcOrganisationsEinheit.newBuilder()
+						.setId(ID)
+						.setName(NAME)
+						.setAnschrift(ANSCHRIFT)
+						.setVorgangManagerAddress(VORGANG_MANAGER_ADDRESS)
+						.setXzufiId(XZUFI_ID)
+						.build())
+				.build();
+	}
+}