diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CollaborationRepository.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CollaborationRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..a4dcbf254763851b9dc6980bc0102d0600827840
--- /dev/null
+++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CollaborationRepository.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
+ * Ministerpräsidenten des Landes Schleswig-Holstein
+ * Staatskanzlei
+ * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ *
+ * Lizenziert unter der EUPL, Version 1.2 oder - sobald
+ * diese von der Europäischen Kommission genehmigt wurden -
+ * Folgeversionen der EUPL ("Lizenz");
+ * Sie dürfen dieses Werk ausschließlich gemäß
+ * dieser Lizenz nutzen.
+ * Eine Kopie der Lizenz finden Sie hier:
+ *
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+ *
+ * Sofern nicht durch anwendbare Rechtsvorschriften
+ * gefordert oder in schriftlicher Form vereinbart, wird
+ * die unter der Lizenz verbreitete Software "so wie sie
+ * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+ * ausdrücklich oder stillschweigend - verbreitet.
+ * Die sprachspezifischen Genehmigungen und Beschränkungen
+ * unter der Lizenz sind dem Lizenztext zu entnehmen.
+ */
+package de.ozgcloud.vorgang.collaboration;
+
+import org.springframework.data.mongodb.core.MongoOperations;
+import org.springframework.stereotype.Repository;
+
+import de.ozgcloud.vorgang.vorgang.Vorgang;
+import lombok.RequiredArgsConstructor;
+
+@Repository
+@RequiredArgsConstructor
+class CollaborationRepository {
+
+	private final MongoOperations mongoOperations;
+
+	public Vorgang save(Vorgang vorgang) {
+		return mongoOperations.save(vorgang);
+	}
+
+}
diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CollaborationService.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CollaborationService.java
index 7afd28a3be542ed4c8a5bfb8651dfabc59f969c4..31e2b701e0ff70522ae029d7e065df708e5879fe 100644
--- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CollaborationService.java
+++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CollaborationService.java
@@ -23,32 +23,41 @@
  */
 package de.ozgcloud.vorgang.collaboration;
 
+import org.springframework.context.ApplicationEventPublisher;
 import org.springframework.stereotype.Service;
 
 import de.ozgcloud.vorgang.vorgang.Vorgang;
 import de.ozgcloud.vorgang.vorgang.VorgangHead;
-import de.ozgcloud.vorgang.vorgang.VorgangService;
 import lombok.RequiredArgsConstructor;
 
 @Service
 @RequiredArgsConstructor
 public class CollaborationService {
 
-	private final VorgangService vorgangService;
+	private final CollaborationRepository collaborationRepository;
+	private final ApplicationEventPublisher publisher;
 
-	public String createCollaborationVorgang(CollaborationRequest request) {
-		var vorgang = updateVorgang(vorgangService.getById(request.getVorgangId()), request);
-		return vorgangService.createVorgangSilent(vorgang);
+	public Vorgang createCollaborationVorgang(CreateCollaborationVorgangRequest request) {
+		var vorgang = collaborationRepository.save(buildCollaborationVorgang(request));
+		// TODO: wieder aktivieren wenn OZG-???? implementiert ist
+		// publisher.publishEvent(new VorgangCreatedEvent(vorgang.getId()));
+		return vorgang;
 	}
 
-	Vorgang updateVorgang(Vorgang vorgang, CollaborationRequest request) {
-		return vorgang.toBuilder()
-				.header(updateHeader(vorgang.getHeader(), request))
+	Vorgang buildCollaborationVorgang(CreateCollaborationVorgangRequest request) {
+		var srcVorgang = request.getVorgang();
+		return Vorgang.builder()
+				.name(srcVorgang.getName())
+				.nummer(srcVorgang.getNummer())
+				.formEngineName(srcVorgang.getFormEngineName())
+				.aktenzeichen(srcVorgang.getAktenzeichen())
+				.header(getHeader(request))
+				.eingangs(srcVorgang.getEingangs())
 				.build();
 	}
 
-	VorgangHead updateHeader(VorgangHead header, CollaborationRequest request) {
-		return header.toBuilder()
+	VorgangHead getHeader(CreateCollaborationVorgangRequest request) {
+		return request.getVorgang().getHeader().toBuilder()
 				.collaborationLevel(request.getCollaborationLevel())
 				.organisationsEinheitId(request.getZustaendigeStelle())
 				.build();
diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/GrpcVorgangService.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/GrpcVorgangService.java
index 2702fcfdd2926473b9f938d80eae8f33fee49156..647303f1968fcf6ae80edad3dbe42e87497e6579 100644
--- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/GrpcVorgangService.java
+++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/GrpcVorgangService.java
@@ -126,12 +126,16 @@ class GrpcVorgangService extends VorgangServiceGrpc.VorgangServiceImplBase {
 	}
 
 	GrpcCreateCollaborationVorgangResponse createCollaborationVorgang(GrpcCollaborationRequest request) {
-		var collaborationVorgangId = collaborationService.createCollaborationVorgang(buildCreateCollaborationVorgangRequest(request));
-		return GrpcCreateCollaborationVorgangResponse.newBuilder().setVorgangId(collaborationVorgangId).build();
+		var collaborationVorgang = collaborationService.createCollaborationVorgang(buildCreateCollaborationVorgangRequest(request));
+		return buildCreateCollaborationVorgangResponse(collaborationVorgang);
 	}
 
 	CreateCollaborationVorgangRequest buildCreateCollaborationVorgangRequest(GrpcCollaborationRequest request) {
 		var vorgang = vorgangService.getById(request.getVorgangId());
 		return createCollaborationVorgangRequestMapper.mapFrom(request).toBuilder().vorgang(vorgang).build();
 	}
+
+	GrpcCreateCollaborationVorgangResponse buildCreateCollaborationVorgangResponse(Vorgang vorgang) {
+		return GrpcCreateCollaborationVorgangResponse.newBuilder().setVorgangId(vorgang.getId()).build();
+	}
 }
\ No newline at end of file
diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangService.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangService.java
index 47477d08add15ba5910eaa83d0821c3866152caf..3b69aa9e535b41598d1f2d76f9645436e3c8e75c 100644
--- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangService.java
+++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangService.java
@@ -129,23 +129,6 @@ public class VorgangService {
 		return vorgang.toBuilder().clearEingangs().eingang(eingang);
 	}
 
-	public String createVorgangSilent(Vorgang vorgang) {
-		var mappedEingang = kopControlDataMapper.moveLabelsToControlData(vorgang.getEingangs().getFirst());
-		var result = repository.save(createVorgangCopy(vorgang, mappedEingang));
-		return result.getId();
-	}
-
-	Vorgang createVorgangCopy(Vorgang vorgang, Eingang eingang) {
-		return Vorgang.builder()
-				.name(vorgang.getName())
-				.nummer(vorgang.getNummer())
-				.formEngineName(vorgang.getFormEngineName())
-				.aktenzeichen(vorgang.getAktenzeichen())
-				.header(vorgang.getHeader())
-				.eingang(eingang)
-				.forwardings(vorgang.getForwardings())
-				.build();
-	}
 	private void publishVorgangeCreatedEvent(Vorgang vorgang) {
 		publisher.publishEvent(new VorgangCreatedEvent(vorgang.getId()));
 	}
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationRepositoryITCase.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationRepositoryITCase.java
new file mode 100644
index 0000000000000000000000000000000000000000..b44c3d827a851c7e9b30c28919fb112647914d81
--- /dev/null
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationRepositoryITCase.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
+ * Ministerpräsidenten des Landes Schleswig-Holstein
+ * Staatskanzlei
+ * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+ *
+ * Lizenziert unter der EUPL, Version 1.2 oder - sobald
+ * diese von der Europäischen Kommission genehmigt wurden -
+ * Folgeversionen der EUPL ("Lizenz");
+ * Sie dürfen dieses Werk ausschließlich gemäß
+ * dieser Lizenz nutzen.
+ * Eine Kopie der Lizenz finden Sie hier:
+ *
+ * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+ *
+ * Sofern nicht durch anwendbare Rechtsvorschriften
+ * gefordert oder in schriftlicher Form vereinbart, wird
+ * die unter der Lizenz verbreitete Software "so wie sie
+ * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+ * ausdrücklich oder stillschweigend - verbreitet.
+ * Die sprachspezifischen Genehmigungen und Beschränkungen
+ * unter der Lizenz sind dem Lizenztext zu entnehmen.
+ */
+package de.ozgcloud.vorgang.collaboration;
+
+import static org.assertj.core.api.Assertions.*;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import de.ozgcloud.common.test.DataITCase;
+import de.ozgcloud.vorgang.vorgang.VorgangTestFactory;
+
+@DataITCase
+class CollaborationRepositoryITCase {
+
+	@Autowired
+	private CollaborationRepository repository;
+
+	@Test
+	void shouldSaveVorgang() {
+		var vorgang = VorgangTestFactory.createBuilder().id(null).build();
+
+		var savedVorgang = repository.save(vorgang);
+
+		assertThat(savedVorgang.getId()).isNotNull();
+		assertThat(savedVorgang).usingRecursiveComparison().ignoringFields("id").isEqualTo(vorgang);
+	}
+}
\ No newline at end of file
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationServiceTest.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationServiceTest.java
index 469ef800742ad7b26d74b2c4ae94cde53fff0a67..ce325baa4524adbaf3a7216fe81b83a0953036ff 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationServiceTest.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationServiceTest.java
@@ -26,17 +26,25 @@ package de.ozgcloud.vorgang.collaboration;
 import static org.assertj.core.api.Assertions.*;
 import static org.mockito.Mockito.*;
 
+import java.time.ZonedDateTime;
+import java.time.temporal.ChronoUnit;
+
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
 import org.mockito.Spy;
+import org.springframework.context.ApplicationEventPublisher;
 
+import de.ozgcloud.command.VorgangCreatedEvent;
+import de.ozgcloud.vorgang.servicekonto.ServiceKonto;
+import de.ozgcloud.vorgang.servicekonto.ServiceKontoTestFactory;
 import de.ozgcloud.vorgang.vorgang.Vorgang;
 import de.ozgcloud.vorgang.vorgang.VorgangHead;
 import de.ozgcloud.vorgang.vorgang.VorgangHeadTestFactory;
-import de.ozgcloud.vorgang.vorgang.VorgangService;
 import de.ozgcloud.vorgang.vorgang.VorgangTestFactory;
 
 class CollaborationServiceTest {
@@ -46,108 +54,202 @@ class CollaborationServiceTest {
 	private CollaborationService service;
 
 	@Mock
-	private VorgangService vorgangService;
+	private CollaborationRepository collaborationRepository;
+	@Mock
+	private ApplicationEventPublisher publisher;
 
 	@Nested
 	class TestCreateCollaborationVorgang {
 
-		private static final CreateCollaborationVorgangRequest COLLABORATION_REQUEST = CreateCollaborationVorgangRequestTestFactory.create();
-		private static final String COLLABORATION_VORGANG_ID = "collaboratino-vorgang-id";
+		private static final CreateCollaborationVorgangRequest CREATE_COLLABORATION_VORGANG_REQUEST = CreateCollaborationVorgangRequestTestFactory.create();
+		private static final String COLLABORATION_VORGANG_ID = "collaboration-vorgang-id";
+		private static final Vorgang SAVED_VORGANG = VorgangTestFactory.createBuilder().id(COLLABORATION_VORGANG_ID).build();
 
 		@Mock
-		private Vorgang loadedVorgang;
-		@Mock
-		private Vorgang modifiedVorgang;
+		private Vorgang collaborationVorgang;
+		@Captor
+		private ArgumentCaptor<VorgangCreatedEvent> eventCaptor;
 
 		@BeforeEach
 		void init() {
-			when(vorgangService.getById(any())).thenReturn(loadedVorgang);
-			when(vorgangService.createVorgangSilent(any())).thenReturn(COLLABORATION_VORGANG_ID);
-			doReturn(modifiedVorgang).when(service).updateVorgang(any(), any());
+			doReturn(collaborationVorgang).when(service).buildCollaborationVorgang(any());
+			when(collaborationRepository.save(any())).thenReturn(SAVED_VORGANG);
 		}
 
 		@Test
-		void shouldCallGetVorgang() {
+		void shouldCallBuildCollaborationVorgang() {
 			createCollaborationVorgang();
 
-			verify(vorgangService).getById(VorgangTestFactory.ID);
+			verify(service).buildCollaborationVorgang(CREATE_COLLABORATION_VORGANG_REQUEST);
 		}
 
 		@Test
-		void shouldCallModifyVorgang() {
+		void shouldCallSaveVorgang() {
 			createCollaborationVorgang();
 
-			verify(service).updateVorgang(loadedVorgang, COLLABORATION_REQUEST);
+			verify(collaborationRepository).save(collaborationVorgang);
 		}
 
 		@Test
-		void shouldCallCreateVorgang() {
+		void shouldPublishEvent() {
 			createCollaborationVorgang();
 
-			verify(vorgangService).createVorgangSilent(modifiedVorgang);
+			verifyNoInteractions(publisher);
+			// TODO: aktiviere, wenn VorgangCreatedEvent veröffentlicht wird
+			// 	verify(publisher).publishEvent(eventCaptor.capture());
+			// 	assertThat(eventCaptor.getValue().getSource()).isEqualTo(COLLABORATION_VORGANG_ID);
 		}
 
 		@Test
-		void shouldReturnVorgangId() {
+		void shouldReturnVorgang() {
 			var result = createCollaborationVorgang();
 
-			assertThat(result).isEqualTo(COLLABORATION_VORGANG_ID);
+			assertThat(result).isSameAs(SAVED_VORGANG);
 		}
 
-		private String createCollaborationVorgang() {
-			return service.createCollaborationVorgang(COLLABORATION_REQUEST);
+		private Vorgang createCollaborationVorgang() {
+			return service.createCollaborationVorgang(CREATE_COLLABORATION_VORGANG_REQUEST);
 		}
 	}
 
 	@Nested
-	class TestUpdateVorgang {
+	class TestBuildCollaborationVorgang {
 
-		private static final VorgangHead HEAD = VorgangHeadTestFactory.create();
-		private static final CreateCollaborationVorgangRequest COLLABORATION_REQUEST = CreateCollaborationVorgangRequestTestFactory.create();
+		private static final CreateCollaborationVorgangRequest COLLABORATION_REQUEST = CreateCollaborationVorgangRequestTestFactory.createBuilder()
+				.vorgang(VorgangTestFactory.createBuilder().formEngineName(VorgangTestFactory.FORM_ENGINE_NAME).build()).build();
 
-		@Mock
-		private VorgangHead updatedHead;
+		private static final VorgangHead UPDATED_HEAD = VorgangHeadTestFactory.create();
+
+		@BeforeEach
+		void init() {
+			doReturn(UPDATED_HEAD).when(service).getHeader(any());
+		}
+
+		@Test
+		void shouldSetVorgangName() {
+			var result = buildCollaborationVorgang();
+
+			assertThat(result.getName()).isEqualTo(VorgangTestFactory.NAME);
+		}
+
+		@Test
+		void shouldSetVorgangNummer() {
+			var result = buildCollaborationVorgang();
+
+			assertThat(result.getNummer()).isEqualTo(VorgangTestFactory.VORGANG_NUMMER);
+		}
+
+		@Test
+		void shouldSetFormEngineName() {
+			var result = buildCollaborationVorgang();
+
+			assertThat(result.getFormEngineName()).isEqualTo(VorgangTestFactory.FORM_ENGINE_NAME);
+		}
+
+		@Test
+		void shouldSetAktenzeichen() {
+			var result = buildCollaborationVorgang();
+
+			assertThat(result.getAktenzeichen()).isEqualTo(VorgangTestFactory.AKTENZEICHEN);
+		}
+
+		@Test
+		void shouldCallGetHeader() {
+			buildCollaborationVorgang();
+
+			verify(service).getHeader(COLLABORATION_REQUEST);
+		}
 
 		@Test
-		void shouldCallUpdateHeader() {
-			modifyVorgang();
+		void shouldSetHeader() {
+			var result = buildCollaborationVorgang();
 
-			verify(service).updateHeader(HEAD, COLLABORATION_REQUEST);
+			assertThat(result.getHeader()).isEqualTo(UPDATED_HEAD);
 		}
 
 		@Test
-		void shouldSetUpdatedHeader() {
-			doReturn(updatedHead).when(service).updateHeader(any(), any());
+		void shouldSetEingangs() {
+			var result = buildCollaborationVorgang();
 
-			var result = modifyVorgang();
+			assertThat(result.getEingangs()).containsExactly(VorgangTestFactory.EINGANG);
+		}
+
+		@Test
+		void shouldSetCreatedAt() {
+			var result = buildCollaborationVorgang();
+
+			assertThat(result.getCreatedAt()).isCloseTo(ZonedDateTime.now(), within(1, ChronoUnit.SECONDS));
+		}
+
+		@Test
+		void shouldSetInCreationFalse() {
+			var result = buildCollaborationVorgang();
+
+			assertThat(result.isInCreation()).isFalse();
+		}
+
+		@Test
+		void shouldSetStatusNeu() {
+			var result = buildCollaborationVorgang();
+
+			assertThat(result.getStatus()).isEqualTo(Vorgang.Status.NEU);
+		}
+
+		@Test
+		void shouldNotSetAssignedTo() {
+			var result = buildCollaborationVorgang();
+
+			assertThat(result.getAssignedTo()).isNull();
+		}
+
+		@Test
+		void shouldNotSetClientAttributes() {
+			var result = buildCollaborationVorgang();
+
+			assertThat(result.getClientAttributes()).isEmpty();
+		}
 
-			assertThat(result.getHeader()).isSameAs(updatedHead);
+		@Test
+		void shouldNotSetForwardings() {
+			var result = buildCollaborationVorgang();
+
+			assertThat(result.getForwardings()).isEmpty();
 		}
 
-		private Vorgang modifyVorgang() {
-			return service.updateVorgang(VorgangTestFactory.createBuilder().header(HEAD).build(), COLLABORATION_REQUEST);
+		private Vorgang buildCollaborationVorgang() {
+			return service.buildCollaborationVorgang(COLLABORATION_REQUEST);
 		}
 	}
 
 	@Nested
-	class TestUpdateHeader {
+	class TestGetHeader {
+
+		private static final ServiceKonto SERVICE_KONTO = ServiceKontoTestFactory.create();
 
 		@Test
 		void shouldSetZustaendigeStelle() {
-			var result = updateHeader();
+			var result = getHeader();
 
 			assertThat(result.getOrganisationsEinheitId()).isEqualTo(CreateCollaborationVorgangRequestTestFactory.ZUSTAENDIGE_STELLE);
 		}
 
 		@Test
 		void shouldSetCollaborationLevel() {
-			var result = updateHeader();
+			var result = getHeader();
 
 			assertThat(result.getCollaborationLevel()).isEqualTo(CreateCollaborationVorgangRequestTestFactory.COLLABORATION_LEVEL);
 		}
 
-		private VorgangHead updateHeader() {
-			return service.updateHeader(VorgangHeadTestFactory.create(), CreateCollaborationVorgangRequestTestFactory.create());
+		@Test
+		void shouldKeepServiceKonto() {
+			var result = getHeader();
+
+			assertThat(result.getServiceKonto()).isSameAs(SERVICE_KONTO);
+		}
+
+		private VorgangHead getHeader() {
+			return service.getHeader(CreateCollaborationVorgangRequestTestFactory.createBuilder().vorgang(VorgangTestFactory.createBuilder().header(
+					VorgangHeadTestFactory.createBuilder().serviceKonto(SERVICE_KONTO).build()).build()).build());
 		}
 	}
 
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/GrpcVorgangServiceTest.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/GrpcVorgangServiceTest.java
index 7e7b7d99af9f9ce95935eed46f38262f21cd35b8..3b78df2424dfa62ae1048907e663065de5110e27 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/GrpcVorgangServiceTest.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/GrpcVorgangServiceTest.java
@@ -414,13 +414,13 @@ class GrpcVorgangServiceTest {
 	class TestCreateCollaborationVorgang {
 
 		private static final GrpcCollaborationRequest GRPC_COLLABORATION_REQUEST = GrpcCollaborationRequestTestFactory.create();
-		private static final String COLLABORATION_VORGANG_ID = "collaboration-vorgang-id";
 		private static final CreateCollaborationVorgangRequest CREATE_COLLABORATION_VORGANG_REQUEST = CreateCollaborationVorgangRequestTestFactory.create();
+		private static final Vorgang COLLABORATION_VORGANG = VorgangTestFactory.create();
 
 		@BeforeEach
 		void init() {
 			doReturn(CREATE_COLLABORATION_VORGANG_REQUEST).when(service).buildCreateCollaborationVorgangRequest(any());
-			when(collaborationService.createCollaborationVorgang(any())).thenReturn(COLLABORATION_VORGANG_ID);
+			when(collaborationService.createCollaborationVorgang(any())).thenReturn(COLLABORATION_VORGANG);
 		}
 
 		@Test
@@ -438,10 +438,20 @@ class GrpcVorgangServiceTest {
 		}
 
 		@Test
-		void should() {
+		void shouldCallBuildResponse() {
+			createCollaborationVorgang();
+
+			verify(service).buildCreateCollaborationVorgangResponse(COLLABORATION_VORGANG);
+		}
+
+		@Test
+		void shouldReturnResponse() {
+			var response = GrpcCreateCollaborationVorgangResponseTestFactory.create();
+			doReturn(response).when(service).buildCreateCollaborationVorgangResponse(any());
+
 			var result = createCollaborationVorgang();
 
-			assertThat(result.getVorgangId()).isEqualTo(COLLABORATION_VORGANG_ID);
+			assertThat(result).isSameAs(response);
 		}
 
 		private GrpcCreateCollaborationVorgangResponse createCollaborationVorgang() {
@@ -487,4 +497,15 @@ class GrpcVorgangServiceTest {
 			return service.buildCreateCollaborationVorgangRequest(GRPC_COLLABORATION_REQUEST);
 		}
 	}
+
+	@Nested
+	class TestBuildCreateCollaborationVorgangResponse {
+
+		@Test
+		void shouldSetVorgangId() {
+			var result = service.buildCreateCollaborationVorgangResponse(VorgangTestFactory.create());
+
+			assertThat(result.getVorgangId()).isEqualTo(VorgangTestFactory.ID);
+		}
+	}
 }
\ No newline at end of file
diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/VorgangServiceTest.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/VorgangServiceTest.java
index 2a25451185752ed845a10235e4bca87d758a239d..e01955296c8139c8ee3c0b5563a6c519465b66d1 100644
--- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/VorgangServiceTest.java
+++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/VorgangServiceTest.java
@@ -53,7 +53,6 @@ import de.ozgcloud.vorgang.command.CommandTestFactory;
 import de.ozgcloud.vorgang.common.errorhandling.NotFoundException;
 import de.ozgcloud.vorgang.servicekonto.ServiceKontoTestFactory;
 import de.ozgcloud.vorgang.vorgang.redirect.ForwardingService;
-import de.ozgcloud.vorgang.vorgang.redirect.ForwardingTestFactory;
 
 class VorgangServiceTest {
 
@@ -291,175 +290,6 @@ class VorgangServiceTest {
 		}
 	}
 
-	@Nested
-	class TestCreateVorgangSilent {
-
-		private static final Eingang EINGANG = EingangTestFactory.create();
-		private static final Vorgang SRC_VORGANG = VorgangTestFactory.createBuilder().clientAttributes(null).clearEingangs().eingang(EINGANG).build();
-		private static final String CREATED_VORGANG_ID = "created-vorgang-id";
-
-		@Mock
-		private Eingang mappedEingang;
-		@Mock
-		private Vorgang createdVorgang;
-		@Mock
-		private Vorgang vorgangCopy;
-
-		@BeforeEach
-		void init() {
-			when(kopControlDataMapper.moveLabelsToControlData(any(Eingang.class))).thenReturn(mappedEingang);
-			when(createdVorgang.getId()).thenReturn(CREATED_VORGANG_ID);
-			when(repository.save(any())).thenReturn(createdVorgang);
-			doReturn(vorgangCopy).when(service).createVorgangCopy(any(), any());
-		}
-
-		@Test
-		void shouldCallMoveLabels() {
-			createVorgang();
-
-			verify(kopControlDataMapper).moveLabelsToControlData(EINGANG);
-		}
-
-		@Test
-		void shouldCallCreateVorgangCopy() {
-			createVorgang();
-
-			verify(service).createVorgangCopy(SRC_VORGANG, mappedEingang);
-		}
-
-		@Test
-		void shouldNotPublishVorgangCreatedEvent() {
-			createVorgang();
-
-			verify(publisher, never()).publishEvent(any(VorgangCreatedEvent.class));
-		}
-
-		@Test
-		void shouldCallSaveVorgang() {
-			createVorgang();
-
-			verify(repository).save(vorgangCopy);
-		}
-
-		@Test
-		void shouldReturnCreatedVorgangId() {
-			var result = createVorgang();
-
-			assertThat(result).isEqualTo(CREATED_VORGANG_ID);
-		}
-
-		private String createVorgang() {
-			return service.createVorgangSilent(SRC_VORGANG);
-		}
-	}
-
-	@Nested
-	class TestCreateVorgangCopy {
-
-		@Mock
-		private Eingang eingang;
-
-		@Test
-		void shouldNotCopyId() {
-			var result = createVorgangCopy();
-
-			assertThat(result.getId()).isNull();
-		}
-
-		@Test
-		void shouldNotCopyVersion() {
-			var result = createVorgangCopy();
-
-			assertThat(result.getVersion()).isZero();
-		}
-
-		@Test
-		void shouldSetInCreationFalse() {
-			var result = createVorgangCopy();
-
-			assertThat(result.isInCreation()).isFalse();
-		}
-
-		@Test
-		void shouldNotCopyStatus() {
-			var result = createVorgangCopy();
-
-			assertThat(result.getStatus()).isEqualTo(Vorgang.Status.NEU);
-		}
-
-		@Test
-		void shouldNotCopyAssignedTo() {
-			var result = createVorgangCopy();
-
-			assertThat(result.getAssignedTo()).isNull();
-		}
-
-		@Test
-		void shouldNotCopyClientAttributes() {
-			var result = createVorgangCopy();
-
-			assertThat(result.getClientAttributes()).isEmpty();
-		}
-
-		@Test
-		void shouldCopyName() {
-			var result = createVorgangCopy();
-
-			assertThat(result.getName()).isEqualTo(VorgangTestFactory.NAME);
-		}
-
-		@Test
-		void shouldCopyNummer() {
-			var result = createVorgangCopy();
-
-			assertThat(result.getNummer()).isEqualTo(VorgangTestFactory.VORGANG_NUMMER);
-		}
-
-		@Test
-		void shouldSetFormEngineName() {
-			var result = service.createVorgangCopy(VorgangTestFactory.createBuilder().formEngineName(VorgangTestFactory.FORM_ENGINE_NAME).build(),
-					eingang);
-
-			assertThat(result.getFormEngineName()).isEqualTo(VorgangTestFactory.FORM_ENGINE_NAME);
-		}
-
-		@Test
-		void shouldCopyAktenzeichen() {
-			var result = createVorgangCopy();
-
-			assertThat(result.getAktenzeichen()).isEqualTo(VorgangTestFactory.AKTENZEICHEN);
-		}
-
-		@Test
-		void shouldCopyHeader() {
-			var header = VorgangHeadTestFactory.create();
-
-			var result = service.createVorgangCopy(VorgangTestFactory.createBuilder().header(header).build(), eingang);
-
-			assertThat(result.getHeader()).isEqualTo(header);
-		}
-
-		@Test
-		void shouldSetEingang() {
-			var result = createVorgangCopy();
-
-			assertThat(result.getEingangs()).hasSize(1).first().isSameAs(eingang);
-		}
-
-		@Test
-		void shouldSetForwardings() {
-			var forwarding = ForwardingTestFactory.create();
-
-			var result = service.createVorgangCopy(VorgangTestFactory.createBuilder().forwarding(forwarding).build(), eingang);
-
-			assertThat(result.getForwardings()).containsExactly(forwarding);
-		}
-
-		private Vorgang createVorgangCopy() {
-			return service.createVorgangCopy(VorgangTestFactory.create(), eingang);
-		}
-	}
-
 	@Nested
 	class TestVorgangNotFound {
 		@BeforeEach