diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingRemoteService.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingRemoteService.java
index b1b2e73f0147c826ed60528e1b0ce39d8e13c86b..dc4206747f9b8319555d6a4d62c1b0be5a86f052 100644
--- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingRemoteService.java
+++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingRemoteService.java
@@ -30,22 +30,53 @@ import org.springframework.stereotype.Service;
 
 import de.ozgcloud.common.errorhandling.TechnicalException;
 import de.ozgcloud.eingang.forwarder.RouteForwardingServiceGrpc;
+import de.ozgcloud.eingang.forwarding.GrpcRouteForwardingRequest;
 import de.ozgcloud.eingang.forwarding.GrpcRouteForwardingResponse;
 import de.ozgcloud.vorgang.callcontext.VorgangManagerClientCallContextAttachingInterceptor;
+import de.ozgcloud.vorgang.vorgang.Eingang;
+import de.ozgcloud.vorgang.vorgang.VorgangService;
 import io.grpc.stub.StreamObserver;
 import lombok.RequiredArgsConstructor;
 import net.devh.boot.grpc.client.inject.GrpcClient;
 
 @Service
+@RequiredArgsConstructor
 class ForwardingRemoteService {
 
+	private final VorgangService vorgangService;
+	private final ForwardingRequestMapper forwardingRequestMapper;
 	@GrpcClient("forwarder")
-	private RouteForwardingServiceGrpc.RouteForwardingServiceStub routeForwardingServiceGrpc;
+	private final RouteForwardingServiceGrpc.RouteForwardingServiceStub routeForwardingServiceGrpc;
 
 	public void forward(ForwardingRequest request) {
 		CompletableFuture<Void> responseFuture = new CompletableFuture<>();
+		routeForwarding(request, new ForwardingResponseObserver(responseFuture));
+		waitForCompletion(responseFuture);
+	}
+
+	void routeForwarding(ForwardingRequest request, ForwardingResponseObserver responseObserver) {
 		var requestStreamObserver = routeForwardingServiceGrpc.withInterceptors(new VorgangManagerClientCallContextAttachingInterceptor())
-				.routeForwarding(new ForwardingResponseObserver(responseFuture));
+				.routeForwarding(responseObserver);
+		try {
+			sendEingang(request, requestStreamObserver);
+			requestStreamObserver.onCompleted();
+		} catch (Throwable t) {
+			requestStreamObserver.onError(t);
+		}
+	}
+
+	void sendEingang(ForwardingRequest request, StreamObserver<GrpcRouteForwardingRequest> requestStreamObserver) {
+		var eingang = vorgangService.getById(request.getVorgangId()).getEingangs().getFirst();
+		requestStreamObserver.onNext(buildRouteForwardingRequest(request, eingang));
+
+	}
+
+	GrpcRouteForwardingRequest buildRouteForwardingRequest(ForwardingRequest request, Eingang eingang) {
+		var routeForwarding = forwardingRequestMapper.toGrpcRouteForwarding(request, eingang);
+		return GrpcRouteForwardingRequest.newBuilder().setRouteForwarding(routeForwarding).build();
+	}
+
+	private static void waitForCompletion(CompletableFuture<Void> responseFuture) {
 		try {
 			responseFuture.get();
 		} catch (InterruptedException | ExecutionException e) {