diff --git a/notification-manager/src/main/java/de/itvsh/kop/notification/antragsteller/AntragstellerNotificationEventListener.java b/notification-manager/src/main/java/de/itvsh/kop/notification/antragsteller/AntragstellerNotificationEventListener.java
index c54b50fd130c586238ecdbd47496bdfe95d484df..c4ec067e80e1b99d7e4616d664703207ddab8421 100644
--- a/notification-manager/src/main/java/de/itvsh/kop/notification/antragsteller/AntragstellerNotificationEventListener.java
+++ b/notification-manager/src/main/java/de/itvsh/kop/notification/antragsteller/AntragstellerNotificationEventListener.java
@@ -1,13 +1,17 @@
 package de.itvsh.kop.notification.antragsteller;
 
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.event.EventListener;
 import org.springframework.stereotype.Component;
 
+import de.itvsh.kop.notification.vorgang.Vorgang;
 import de.itvsh.kop.notification.vorgang.VorgangId;
 import de.itvsh.kop.notification.vorgang.VorgangService;
 import de.itvsh.ozg.pluto.command.VorgangCreatedEvent;
+import lombok.extern.log4j.Log4j2;
 
+@Log4j2
 @Component
 public class AntragstellerNotificationEventListener {
 
@@ -20,7 +24,14 @@ public class AntragstellerNotificationEventListener {
 	public void onVorgangCreated(VorgangCreatedEvent event) {
 		var vorgang = vorgangService.getVorgang(VorgangId.from(event.getSource()));
 
-		service.sendNotification(vorgang);
+		sendIfWithPostfach(vorgang);
 	}
 
+	private void sendIfWithPostfach(Vorgang vorgang) {
+		if (StringUtils.isBlank(vorgang.getPostfachId())) {
+			LOG.info("No PostfachId present on Vorgang '{}'.", vorgang.getId());
+		} else {
+			service.sendNotification(vorgang);
+		}
+	}
 }
diff --git a/notification-manager/src/main/java/de/itvsh/kop/notification/command/CommandRemoteService.java b/notification-manager/src/main/java/de/itvsh/kop/notification/command/CommandRemoteService.java
index 6e4ed28fe4069453de3a8a5e62d1281272c9ad1a..a57f8712e50d64fc3dc864a492d1d2ac0e6181e0 100644
--- a/notification-manager/src/main/java/de/itvsh/kop/notification/command/CommandRemoteService.java
+++ b/notification-manager/src/main/java/de/itvsh/kop/notification/command/CommandRemoteService.java
@@ -1,10 +1,12 @@
 package de.itvsh.kop.notification.command;
 
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
 
 import de.itvsh.ozg.pluto.grpc.command.CommandServiceGrpc.CommandServiceBlockingStub;
 import net.devh.boot.grpc.client.inject.GrpcClient;
 
+@Service
 class CommandRemoteService {
 
 	@GrpcClient("pluto")
diff --git a/notification-manager/src/main/java/de/itvsh/kop/notification/command/CommandService.java b/notification-manager/src/main/java/de/itvsh/kop/notification/command/CommandService.java
index dc1bc37658712b71fa80fa72113a28079b402303..783581413df81202eb61122432d70d64edf9f491 100644
--- a/notification-manager/src/main/java/de/itvsh/kop/notification/command/CommandService.java
+++ b/notification-manager/src/main/java/de/itvsh/kop/notification/command/CommandService.java
@@ -13,22 +13,23 @@ import org.springframework.stereotype.Service;
 import de.itvsh.kop.notification.command.Command.CommandOrder;
 import de.itvsh.kop.notification.postfach.PostfachNachricht;
 
-@Service
+@Service("notificationCommandService")
 public class CommandService {
 
 	@Autowired
 	private CommandRemoteService commandRemoteService;
 
 	public void createSendPostfachNachrichtCommand(PostfachNachricht nachricht) {
-		buildCommand(nachricht);
+		commandRemoteService.createCommand(buildCommand(nachricht));
 	}
 
-	private void buildCommand(PostfachNachricht nachricht) {
-		Command.builder()
+	Command buildCommand(PostfachNachricht nachricht) {
+		return Command.builder()
 				.vorgangId(nachricht.getVorgangId())
 				.relationId(nachricht.getVorgangId().toString())
 				.order(CommandOrder.SEND_POSTFACH_NACHRICHT)
-				.body(toMap(nachricht));
+				.body(toMap(nachricht))
+				.build();
 	}
 
 	Map<String, Object> toMap(PostfachNachricht nachricht) {
@@ -37,9 +38,7 @@ public class CommandService {
 		new BeanMap(nachricht).entrySet().stream()
 				.filter(entry -> Objects.nonNull(entry.getValue()))
 				.filter(entry -> !StringUtils.equals(entry.getKey().toString(), "class"))
-				.forEach(entry -> {
-					result.put(entry.getKey().toString(), entry.getValue());
-				});
+				.forEach(entry -> result.put(entry.getKey().toString(), entry.getValue()));
 
 		return Collections.unmodifiableMap(result);
 	}
diff --git a/notification-manager/src/main/java/de/itvsh/kop/notification/postfach/PostfachNachricht.java b/notification-manager/src/main/java/de/itvsh/kop/notification/postfach/PostfachNachricht.java
index 79fdb98f77a1c7ada2cf850ca0a3000b31e90e8f..6d81611ec888d3ec2341e19f9f4ae80046a7d41b 100644
--- a/notification-manager/src/main/java/de/itvsh/kop/notification/postfach/PostfachNachricht.java
+++ b/notification-manager/src/main/java/de/itvsh/kop/notification/postfach/PostfachNachricht.java
@@ -23,4 +23,8 @@ public class PostfachNachricht implements CommandBody {
 	private String subject;
 	private String message;
 
+	public String getReplyOption() {
+		return DEFAULT_REPLY_OPTION;
+	}
+
 }
diff --git a/notification-manager/src/main/java/de/itvsh/kop/notification/vorgang/VorgangService.java b/notification-manager/src/main/java/de/itvsh/kop/notification/vorgang/VorgangService.java
index a549133070680570fa1a880981ad3a252f8363e9..bb5d1fea909ea444de10254640adb6997a6d5019 100644
--- a/notification-manager/src/main/java/de/itvsh/kop/notification/vorgang/VorgangService.java
+++ b/notification-manager/src/main/java/de/itvsh/kop/notification/vorgang/VorgangService.java
@@ -3,7 +3,7 @@ package de.itvsh.kop.notification.vorgang;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-@Service
+@Service("notificationVorgangService")
 public class VorgangService {
 
 	@Autowired
diff --git a/notification-manager/src/test/java/de/itvsh/kop/notification/antragsteller/AntragstellerNotificationEventListenerTest.java b/notification-manager/src/test/java/de/itvsh/kop/notification/antragsteller/AntragstellerNotificationEventListenerTest.java
index 46875c9be69643317b08d2117a1d1565ab67f990..40687f5c1873e7d336b562a8b9f8b34a8df6e3d0 100644
--- a/notification-manager/src/test/java/de/itvsh/kop/notification/antragsteller/AntragstellerNotificationEventListenerTest.java
+++ b/notification-manager/src/test/java/de/itvsh/kop/notification/antragsteller/AntragstellerNotificationEventListenerTest.java
@@ -48,5 +48,14 @@ class AntragstellerNotificationEventListenerTest {
 
 			verify(service).sendNotification(same(VORGANG));
 		}
+
+		@Test
+		void shouldNOTCallServiceOnMissingPostfach() {
+			when(vorgangService.getVorgang(any())).thenReturn(VorgangTestFactory.createBuilder().postfachId(null).build());
+
+			eventListener.onVorgangCreated(EVENT);
+
+			verify(service, never()).sendNotification(any());
+		}
 	}
 }
diff --git a/notification-manager/src/test/java/de/itvsh/kop/notification/command/CommandServiceTest.java b/notification-manager/src/test/java/de/itvsh/kop/notification/command/CommandServiceTest.java
index 9076b8f0b260f91bb550a0b309b4a9ac6e20909c..8744f7a771b79abe00cffc670939f0be8d9b9f22 100644
--- a/notification-manager/src/test/java/de/itvsh/kop/notification/command/CommandServiceTest.java
+++ b/notification-manager/src/test/java/de/itvsh/kop/notification/command/CommandServiceTest.java
@@ -1,17 +1,44 @@
 package de.itvsh.kop.notification.command;
 
 import static org.assertj.core.api.Assertions.*;
+import static org.mockito.ArgumentMatchers.*;
+import static org.mockito.Mockito.*;
 
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
 import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Spy;
 
 import de.itvsh.kop.notification.postfach.PostfachNachrichtTestFactory;
 
 class CommandServiceTest {
 
+	@Spy
 	@InjectMocks
 	private CommandService service;
+	@Mock
+	private CommandRemoteService remoteService;
+
+	@Nested
+	class TestCreateSendPostfachNachrichtCommnad {
+		@Test
+		void shouldBuildCommand() {
+			service.createSendPostfachNachrichtCommand(PostfachNachrichtTestFactory.create());
+
+			verify(service).buildCommand(notNull());
+		}
+
+		@Test
+		void shouldCallRemoteService() {
+			var command = CommandTestFactory.create();
+			doReturn(command).when(service).buildCommand(any());
+
+			service.createSendPostfachNachrichtCommand(PostfachNachrichtTestFactory.create());
+
+			verify(remoteService).createCommand(command);
+		}
+	}
 
 	@Nested
 	class TestToMap {
diff --git a/notification-manager/src/test/java/de/itvsh/kop/notification/postfach/PostfachNachrichtTestFactory.java b/notification-manager/src/test/java/de/itvsh/kop/notification/postfach/PostfachNachrichtTestFactory.java
index 125c9f9072ecdfa1abfe02704bad88fc306c7928..85ad49c12418e97d6462a1ca3c8a23b3358ce3b6 100644
--- a/notification-manager/src/test/java/de/itvsh/kop/notification/postfach/PostfachNachrichtTestFactory.java
+++ b/notification-manager/src/test/java/de/itvsh/kop/notification/postfach/PostfachNachrichtTestFactory.java
@@ -26,7 +26,8 @@ public class PostfachNachrichtTestFactory {
 				PostfachNachricht.FIELD_VORGANG_ID, VorgangTestFactory.ID,
 				PostfachNachricht.FIELD_POSTFACH_ID, VorgangTestFactory.POSTFACH_ID,
 				PostfachNachricht.FIELD_SUBJECT, SUBJECT,
-				PostfachNachricht.FIELD_MESSAGE, MESSAGE);
+				PostfachNachricht.FIELD_MESSAGE, MESSAGE,
+				PostfachNachricht.FIELD_REPLY_OPTION, PostfachNachricht.DEFAULT_REPLY_OPTION);
 
 	}
 
diff --git a/pluto-interface/pom.xml b/pluto-interface/pom.xml
index a738d2ea506a087618ea32dde853abda9f0f81f2..cd6163e1fc5e9f238dc810bdc1231814b9dd674f 100644
--- a/pluto-interface/pom.xml
+++ b/pluto-interface/pom.xml
@@ -4,7 +4,7 @@
 	<parent>
 		<groupId>de.itvsh.kop.common</groupId>
 		<artifactId>kop-common-dependencies</artifactId>
-		<version>1.1.2</version>
+		<version>1.1.3-SNAPSHOT</version>
 		<relativePath />
 	</parent>
 
diff --git a/pluto-server/pom.xml b/pluto-server/pom.xml
index 39cb4c7eb923464c960ffe9dc6f7d47631a27e3d..b062a14c5e2a70e07c00f7128bcf48d1c1a6c1ad 100644
--- a/pluto-server/pom.xml
+++ b/pluto-server/pom.xml
@@ -49,6 +49,12 @@
 			<version>${project.version}</version>
 		</dependency>
 
+		<dependency>
+			<groupId>de.itvsh.kop.notification</groupId>
+			<artifactId>notification-manager</artifactId>
+			<version>${project.version}</version>
+			<scope>runtime</scope>
+		</dependency>
 
 		<!-- Spring -->
 		<dependency>
@@ -78,14 +84,14 @@
 			<groupId>org.springframework.boot</groupId>
 			<artifactId>spring-boot-starter-validation</artifactId>
 		</dependency>
-		
+
 		<dependency>
 			<groupId>org.springframework.security</groupId>
 			<artifactId>spring-security-core</artifactId>
 		</dependency>
 		<dependency>
-		    <groupId>org.springframework.security</groupId>
-		    <artifactId>spring-security-config</artifactId>
+			<groupId>org.springframework.security</groupId>
+			<artifactId>spring-security-config</artifactId>
 		</dependency>
 
 		<!-- aspectJ -->
diff --git a/pluto-server/src/main/java/de/itvsh/ozg/pluto/attached_item/VorgangAttachedItemEventListener.java b/pluto-server/src/main/java/de/itvsh/ozg/pluto/attached_item/VorgangAttachedItemEventListener.java
index 9d2c2b38a233934ded42dcdb0a5f4f3f098e1725..ff6f0377ac4e64961bc755a7e76168cc7b577635 100644
--- a/pluto-server/src/main/java/de/itvsh/ozg/pluto/attached_item/VorgangAttachedItemEventListener.java
+++ b/pluto-server/src/main/java/de/itvsh/ozg/pluto/attached_item/VorgangAttachedItemEventListener.java
@@ -16,8 +16,8 @@ class VorgangAttachedItemEventListener {
 	private static final String IS_CREATE_ITEM_ORDER_CONDITION = "{T(de.itvsh.ozg.pluto.attached_item.VorgangAttachedItemEventListener).IS_CREATE_ITEM_ORDER.test(event.getSource())}";
 	private static final String IS_UPDATE_ITEM_ORDER_CONDITION = "{T(de.itvsh.ozg.pluto.attached_item.VorgangAttachedItemEventListener).IS_UPDATE_ITEM_ORDER.test(event.getSource())}";
 
-	public static final Predicate<Command> IS_CREATE_ITEM_ORDER = command -> command.getOrder() == Order.CREATE_ATTACHED_ITEM;
-	public static final Predicate<Command> IS_UPDATE_ITEM_ORDER = command -> command.getOrder() == Order.UPDATE_ATTACHED_ITEM;
+	public static final Predicate<Command> IS_CREATE_ITEM_ORDER = command -> Order.CREATE_ATTACHED_ITEM.isMeant(command.getOrder());
+	public static final Predicate<Command> IS_UPDATE_ITEM_ORDER = command -> Order.UPDATE_ATTACHED_ITEM.isMeant(command.getOrder());
 
 	@Autowired
 	private VorgangAttachedItemService service;
diff --git a/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/Command.java b/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/Command.java
index 34b656f2b4cbd80005a07df522f95518bd65edc2..1c097b51dfec2edfaf8f7f2d1c3cb40718953539 100644
--- a/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/Command.java
+++ b/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/Command.java
@@ -37,7 +37,7 @@ public class Command {
 	private String relationId;
 	private long relationVersion;
 
-	private Order order;
+	private String order;
 
 	private Status previousStatus;
 	private String errorMessage;
diff --git a/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/CommandService.java b/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/CommandService.java
index c201006995279e1be13e1ae75c5562c8edbccab7..2c5193e3f9d34c6d589804b6d7903586da3ca1be 100644
--- a/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/CommandService.java
+++ b/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/CommandService.java
@@ -12,6 +12,8 @@ import org.springframework.context.ApplicationEventPublisher;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
+import de.itvsh.ozg.pluto.common.callcontext.CallContextUser;
+import de.itvsh.ozg.pluto.common.callcontext.CurrentUserService;
 import de.itvsh.ozg.pluto.vorgang.Vorgang.Status;
 
 @Service
@@ -23,6 +25,9 @@ public class CommandService {
 	@Autowired
 	private ApplicationEventPublisher publisher;
 
+	@Autowired
+	private CurrentUserService userService;
+
 	public Command createCommand(CreateCommandRequest request) {
 		return createCommand(request, Optional.empty());
 	}
@@ -48,11 +53,15 @@ public class CommandService {
 
 		currentVorgangStatus.ifPresent(builder::previousStatus);
 
-		builder = addUserIfExists(builder, Optional.ofNullable(request.getCallContext().getUser()));
+		builder = addUserIfExists(builder, Optional.ofNullable(request.getCallContext()).map(CallContext::getUser), userService.findUser());
 		return builder.build();
 	}
 
-	private Command.CommandBuilder addUserIfExists(Command.CommandBuilder builder, Optional<User> user) {
+	private Command.CommandBuilder addUserIfExists(Command.CommandBuilder builder, Optional<User> user, Optional<CallContextUser> contextUser) {
+		if (contextUser.isPresent()) {
+			return builder.createdBy(contextUser.get().getUserId().orElse(null)).createdByName(contextUser.get().getUserName().orElse(null));
+		}
+
 		return user.map(u -> builder.createdBy(u.getId()).createdByName(u.getName())).orElse(builder);
 	}
 
diff --git a/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/CreateCommandRequest.java b/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/CreateCommandRequest.java
index 20f44f722a8845b7af50e5ea5c23c61fb54a23b7..0557061cac95cedf7fda3fa9ee456660da5b33ad 100644
--- a/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/CreateCommandRequest.java
+++ b/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/CreateCommandRequest.java
@@ -27,7 +27,7 @@ public class CreateCommandRequest {
 	private Long relationVersion;
 
 	@NotNull
-	private Order order;
+	private String order;
 
 	private RedirectRequest redirectRequest;
 
diff --git a/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/GrpcCommandResponseMapper.java b/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/GrpcCommandResponseMapper.java
index 289de5371a7c41d8311b0ea8e7054750fd24090c..4128a1315252dec633c15cd6ccaba3f5cf6ee5c7 100644
--- a/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/GrpcCommandResponseMapper.java
+++ b/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/GrpcCommandResponseMapper.java
@@ -24,7 +24,14 @@ public interface GrpcCommandResponseMapper {
 	@Mapping(target = "unknownFields", ignore = true)
 	@Mapping(target = "allFields", ignore = true)
 	@Mapping(target = "messageParametersList", source = "messageParameters")
+	@Mapping(target = "command.orderString", source = "command.order")
 	GrpcCommandResponse toGrpc(CommandResponse response);
 
-	GrpcOrder orderMapping(Order order);
+	default GrpcOrder orderMapping(String order) {
+		try {
+			return GrpcOrder.valueOf(order);
+		} catch (IllegalArgumentException e) {
+			return GrpcOrder.UNDEFINED;
+		}
+	};
 }
diff --git a/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/GrpcCommandService.java b/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/GrpcCommandService.java
index c4ed34002ebc3fc5ec31b3b96cd83546cc7ebcb0..d6c1a95fb5ab1a6513293d693aa68104fa037a9c 100644
--- a/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/GrpcCommandService.java
+++ b/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/GrpcCommandService.java
@@ -58,26 +58,24 @@ public class GrpcCommandService extends CommandServiceImplBase {
 	}
 
 	private Optional<Status> getActualStatus(CreateCommandRequest request) {
-		if (isRelatedToVorgang(request.getOrder())) {
+		if (isStatusChangeOrder(request.getOrder())) {
 			return Optional.of(getVorgang(request.getRelationId()).getStatus());
 		} else {
 			return Optional.empty();
 		}
 	}
 
-	boolean isRelatedToVorgang(Order order) {
-		return order != Order.FORWARD_SUCCESSFULL
-				&& order != Order.FORWARD_FAILED
-				&& order != Order.RESEND_POSTFACH_MAIL
-				&& order != Order.UPDATE_ATTACHED_ITEM;
+	boolean isStatusChangeOrder(String order) {
+		return order.startsWith("VORGANG");
 	}
 
 	private Vorgang getVorgang(String vorgangId) {
 		return vorgangService.getById(vorgangId);
 	}
 
+	// TODO implement event/listener system
 	void executeOrder(Command command) {
-		Optional.ofNullable(StatusOrder.getOrderMethod(command.getOrder()))
+		StatusOrder.getOrderMethod(command.getOrder())
 				.ifPresent(orderMethod -> orderMethod.executeOrder(vorgangService, command));
 	}
 
@@ -146,7 +144,7 @@ public class GrpcCommandService extends CommandServiceImplBase {
 		return GrpcGetPendingCommandsResponse.newBuilder()
 				.addAllCommand(pendingCommands.stream()
 						.map(grpcCommandMapper::toGrpc)
-						.collect(Collectors.toList()))
+						.toList())
 				.build();
 	}
 
diff --git a/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/GrpcCreateCommandRequestMapper.java b/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/GrpcCreateCommandRequestMapper.java
index c50fc53ef788254fd7889bb40308b589483e3567..a47a7c336f84d5c13ea82a592f999f838cac6f05 100644
--- a/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/GrpcCreateCommandRequestMapper.java
+++ b/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/GrpcCreateCommandRequestMapper.java
@@ -27,8 +27,17 @@ public interface GrpcCreateCommandRequestMapper {
 
 	@Mapping(target = "bodyObject", source = "bodyObj")
 	@Mapping(target = "body", source = "bodyList")
+	@Mapping(target = "order", expression = "java(mapOrder(grpcRequest))")
 	CreateCommandRequest fromGrpc(GrpcCreateCommandRequest grpcRequest);
 
+	default String mapOrder(GrpcCreateCommandRequest request) {
+		if (StringUtils.isBlank(request.getOrderString())) {
+			return map(request.getOrder()).name();
+		} else {
+			return request.getOrderString();
+		}
+	}
+
 	@ValueMapping(source = "UNRECOGNIZED", target = MappingConstants.NULL)
 	@ValueMapping(source = "UNDEFINED", target = MappingConstants.NULL)
 	Order map(GrpcOrder grpcOrder);
diff --git a/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/Order.java b/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/Order.java
index 645fa4322e2d1de8518531f3837722b1ad495e78..8e013b51a704e60dd910141f62f132c1cee1b9f3 100644
--- a/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/Order.java
+++ b/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/Order.java
@@ -1,5 +1,7 @@
 package de.itvsh.ozg.pluto.command;
 
+import org.apache.commons.lang3.StringUtils;
+
 public enum Order {
 
 	VORGANG_ANNEHMEN,
@@ -30,4 +32,8 @@ public enum Order {
 
 	CREATE_ATTACHED_ITEM,
 	UPDATE_ATTACHED_ITEM;
+
+	public boolean isMeant(String orderString) {
+		return StringUtils.equals(name(), orderString);
+	}
 }
\ No newline at end of file
diff --git a/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/PersistPostfachMailByCommandService.java b/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/PersistPostfachMailByCommandService.java
index 49bfc3de19cedc50b256d78abf03e1f466cdfed9..0b3ff7dd6f5e5d9b05db55a40e50d86c02e1a848 100644
--- a/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/PersistPostfachMailByCommandService.java
+++ b/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/PersistPostfachMailByCommandService.java
@@ -62,7 +62,7 @@ class PersistPostfachMailByCommandService implements PersistPostfachMailService
 				.callContext(buildCallContext(userId))
 				.vorgangId(mail.getVorgangId())
 				.relationId(mail.getVorgangId()).relationVersion(-1L)
-				.order(Order.CREATE_ATTACHED_ITEM)
+				.order(Order.CREATE_ATTACHED_ITEM.name())
 				.bodyObject(buildItem(mail))
 				.build());
 	}
diff --git a/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/StatusOrder.java b/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/StatusOrder.java
index b8ecc8168a6263df15b4252f23f38a66748c7f2e..9c8fe81a3fbde4837d38af175755293177b9173d 100644
--- a/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/StatusOrder.java
+++ b/pluto-server/src/main/java/de/itvsh/ozg/pluto/command/StatusOrder.java
@@ -1,5 +1,7 @@
 package de.itvsh.ozg.pluto.command;
 
+import java.util.Optional;
+
 import de.itvsh.ozg.pluto.vorgang.Vorgang;
 import de.itvsh.ozg.pluto.vorgang.VorgangService;
 import lombok.AllArgsConstructor;
@@ -39,7 +41,13 @@ enum StatusOrder {
 
 	private OrderMethod method;
 
-	static OrderMethod getOrderMethod(Order order) {
-		return StatusOrder.valueOf(order.name()).method;
+	/** @deprecated please implement event/listener */
+	@Deprecated
+	static Optional<OrderMethod> getOrderMethod(String order) {
+		try {
+			return Optional.ofNullable(StatusOrder.valueOf(order).method);
+		} catch (IllegalArgumentException e) {
+			return Optional.empty();
+		}
 	}
 }
\ No newline at end of file
diff --git a/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/VorgangEventListener.java b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/VorgangEventListener.java
index 3515f85dc48f8d96addd6cc04cf61f19dde6379b..215f656bc1a9a5c7d8884880cc7d8da7c90bd1e2 100644
--- a/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/VorgangEventListener.java
+++ b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/VorgangEventListener.java
@@ -17,7 +17,7 @@ public class VorgangEventListener {
 
 	private static final String IS_ASSIGN_COMMAND_CONDITION = "{T(de.itvsh.ozg.pluto.vorgang.VorgangEventListener).IS_ASSIGN_COMMAND.test(event.getSource())}";
 
-	public static final Predicate<Command> IS_ASSIGN_COMMAND = command -> command.getOrder() == Order.ASSIGN_USER;
+	public static final Predicate<Command> IS_ASSIGN_COMMAND = command -> Order.ASSIGN_USER.isMeant(command.getOrder());
 
 	@Autowired
 	private VorgangService service;
diff --git a/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/VorgangService.java b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/VorgangService.java
index 712caaa4b711435a97ee48bf2227ec600fa11157..e03e58f54f608124fe9f53116d81695c001ed0b2 100644
--- a/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/VorgangService.java
+++ b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/VorgangService.java
@@ -17,6 +17,7 @@ import de.itvsh.ozg.pluto.clientattribute.ClientAttributeMap;
 import de.itvsh.ozg.pluto.clientattribute.ClientAttributeReadPermitted;
 import de.itvsh.ozg.pluto.clientattribute.ClientAttributesMap;
 import de.itvsh.ozg.pluto.command.Command;
+import de.itvsh.ozg.pluto.command.VorgangCreatedEvent;
 import de.itvsh.ozg.pluto.common.errorhandling.NotFoundException;
 import de.itvsh.ozg.pluto.vorgang.Vorgang.Status;
 import de.itvsh.ozg.pluto.vorgang.redirect.Forwarding;
@@ -83,7 +84,9 @@ public class VorgangService {
 	}
 
 	private void publishVorgangeCreatedEvent(Vorgang vorgang) {
-		publisher.publishEvent(new VorgangCreatedEvent(vorgang));
+		// TODO remove first event
+		publisher.publishEvent(new de.itvsh.ozg.pluto.vorgang.VorgangCreatedEvent(vorgang));
+		publisher.publishEvent(new VorgangCreatedEvent(vorgang.getId()));
 	}
 
 	public Vorgang setStatusNeu(Command command) {
diff --git a/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/redirect/ForwardingEventListener.java b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/redirect/ForwardingEventListener.java
index 3e047ad02b0648e49c7e0e8003ac446e755cfe30..e9e678eb925fd5028e046b81c5d90f52ae27b5d1 100644
--- a/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/redirect/ForwardingEventListener.java
+++ b/pluto-server/src/main/java/de/itvsh/ozg/pluto/vorgang/redirect/ForwardingEventListener.java
@@ -22,9 +22,9 @@ public class ForwardingEventListener {
 	private static final String IS_FORWARD_ORDER_CONDITION = "{T(de.itvsh.ozg.pluto.vorgang.redirect.ForwardingEventListener).IS_FORWARD_ORDER.test(event.getSource())}";
 
 	public static final Predicate<MailSendRequest> IS_REDIRECT_MAIL_REQ = req -> req.getRequestReference() instanceof Forwarding;
-	public static final Predicate<Command> IS_SUCCESSFULL_ORDER = command -> command.getOrder() == Order.FORWARD_SUCCESSFULL;
-	public static final Predicate<Command> IS_FAILED_ORDER = command -> command.getOrder() == Order.FORWARD_FAILED;
-	public static final Predicate<Command> IS_FORWARD_ORDER = command -> command.getOrder() == Order.REDIRECT_VORGANG;
+	public static final Predicate<Command> IS_SUCCESSFULL_ORDER = command -> Order.FORWARD_SUCCESSFULL.isMeant(command.getOrder());
+	public static final Predicate<Command> IS_FAILED_ORDER = command -> Order.FORWARD_FAILED.isMeant(command.getOrder());
+	public static final Predicate<Command> IS_FORWARD_ORDER = command -> Order.REDIRECT_VORGANG.isMeant(command.getOrder());
 
 	@Autowired
 	private ForwardingService service;
diff --git a/pluto-server/src/test/java/de/itvsh/ozg/pluto/attached_item/VorgangAttachedItemEventListenerITCase.java b/pluto-server/src/test/java/de/itvsh/ozg/pluto/attached_item/VorgangAttachedItemEventListenerITCase.java
index 972b19488b6235606f57b2bf7154698433fa6b96..f3b8390669d48df106efb5b20b2f1daf6df32abf 100644
--- a/pluto-server/src/test/java/de/itvsh/ozg/pluto/attached_item/VorgangAttachedItemEventListenerITCase.java
+++ b/pluto-server/src/test/java/de/itvsh/ozg/pluto/attached_item/VorgangAttachedItemEventListenerITCase.java
@@ -30,7 +30,7 @@ class VorgangAttachedItemEventListenerITCase {
 	class TestOnCreateItemCommand {
 		@Test
 		void shouldCallListener() {
-			var command = CommandTestFactory.createBuilder().order(Order.CREATE_ATTACHED_ITEM)
+			var command = CommandTestFactory.createBuilder().order(Order.CREATE_ATTACHED_ITEM.name())
 					.bodyObject(VorgangAttachedItemTestFactory.asMap()).build();
 			var event = CommandCreatedEventTestFactory.create(command);
 
@@ -44,7 +44,7 @@ class VorgangAttachedItemEventListenerITCase {
 	class TestOnUpdateItemCommand {
 		@Test
 		void shouldCallListener() {
-			var command = CommandTestFactory.createBuilder().order(Order.UPDATE_ATTACHED_ITEM)
+			var command = CommandTestFactory.createBuilder().order(Order.UPDATE_ATTACHED_ITEM.name())
 					.bodyObject(VorgangAttachedItemTestFactory.asMap()).build();
 			var event = CommandCreatedEventTestFactory.create(command);
 
diff --git a/pluto-server/src/test/java/de/itvsh/ozg/pluto/attached_item/VorgangAttachedItemITCase.java b/pluto-server/src/test/java/de/itvsh/ozg/pluto/attached_item/VorgangAttachedItemITCase.java
index c8eb4409803f07023480f6ed94bde55e13ec0d00..593decd4be3593021c4fe717a88fbee1792edd75 100644
--- a/pluto-server/src/test/java/de/itvsh/ozg/pluto/attached_item/VorgangAttachedItemITCase.java
+++ b/pluto-server/src/test/java/de/itvsh/ozg/pluto/attached_item/VorgangAttachedItemITCase.java
@@ -1,5 +1,6 @@
 package de.itvsh.ozg.pluto.attached_item;
 
+import static org.assertj.core.api.Assertions.*;
 import static org.junit.jupiter.api.Assertions.*;
 
 import java.util.HashMap;
@@ -14,8 +15,6 @@ import org.springframework.context.ApplicationEventPublisher;
 import org.springframework.data.mongodb.core.MongoOperations;
 import org.springframework.test.annotation.DirtiesContext;
 
-import static org.assertj.core.api.Assertions.*;
-
 import de.itvsh.kop.common.test.DataITCase;
 import de.itvsh.ozg.pluto.command.Command;
 import de.itvsh.ozg.pluto.command.CommandCreatedEvent;
@@ -53,7 +52,7 @@ class VorgangAttachedItemITCase {
 	@Nested
 	class TestCreateItem {
 
-		private Command command = CommandTestFactory.createBuilder().order(Order.CREATE_ATTACHED_ITEM)
+		private Command command = CommandTestFactory.createBuilder().order(Order.CREATE_ATTACHED_ITEM.name())
 				.bodyObject(VorgangAttachedItemTestFactory.asMap()).build();
 		private CommandCreatedEvent event = CommandCreatedEventTestFactory.create(command);
 
@@ -93,7 +92,7 @@ class VorgangAttachedItemITCase {
 			var bodyObjectMap = new HashMap<String, Object>(VorgangAttachedItemTestFactory.asMap());
 			bodyObjectMap.put(VorgangAttachedItem.MONGODB_FIELDNAME_ITEM, itemMap);
 
-			command = CommandTestFactory.createBuilder().order(Order.UPDATE_ATTACHED_ITEM).bodyObject(bodyObjectMap).build();
+			command = CommandTestFactory.createBuilder().order(Order.UPDATE_ATTACHED_ITEM.name()).bodyObject(bodyObjectMap).build();
 
 			event = CommandCreatedEventTestFactory.create(command);
 		}
diff --git a/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/CommandITCase.java b/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/CommandITCase.java
index 78f37fd0ec485a9d036d1e433987e1759fc07520..7923f0f4ff0f5127c8a42501774cd0e21cdbc20f 100644
--- a/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/CommandITCase.java
+++ b/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/CommandITCase.java
@@ -1,5 +1,6 @@
 package de.itvsh.ozg.pluto.command;
 
+import static org.assertj.core.api.Assertions.*;
 import static org.junit.jupiter.api.Assertions.*;
 
 import org.junit.jupiter.api.BeforeEach;
@@ -11,8 +12,6 @@ import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.data.mongodb.core.MongoOperations;
 import org.springframework.test.annotation.DirtiesContext;
 
-import static org.assertj.core.api.Assertions.*;
-
 import de.itvsh.kop.common.test.DataITCase;
 import de.itvsh.ozg.pluto.attached_item.VorgangAttachedItem;
 import de.itvsh.ozg.pluto.attached_item.VorgangAttachedItemTestFactory;
@@ -153,7 +152,8 @@ class CommandITCase {
 				@BeforeEach
 				void prepareDatabase() {
 					mongoOperations.save(VorgangTestFactory.create());
-					mongoOperations.save(CommandTestFactory.createBuilder().order(Order.SEND_POSTFACH_MAIL).status(CommandStatus.PENDING).build());
+					mongoOperations
+							.save(CommandTestFactory.createBuilder().order(Order.SEND_POSTFACH_MAIL.name()).status(CommandStatus.PENDING).build());
 				}
 
 				@Test
@@ -313,7 +313,7 @@ class CommandITCase {
 				mongoOperations.save(VorgangTestFactory.createBuilder().status(Status.VERWORFEN).build());
 
 				mongoOperations.save(CommandTestFactory.createBuilder().relationId(VorgangTestFactory.ID)
-						.relationVersion(VorgangTestFactory.VERSION - 1).order(Order.VORGANG_VERWERFEN).build());
+						.relationVersion(VorgangTestFactory.VERSION - 1).order(Order.VORGANG_VERWERFEN.name()).build());
 			}
 
 			@Test
diff --git a/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/CommandServiceTest.java b/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/CommandServiceTest.java
index cdd1fa8d9a2529f2cdde4fc6b9a00dcfc9892af7..4fdf601e1e7585d6d9a755dc510c9eb4b4521cee 100644
--- a/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/CommandServiceTest.java
+++ b/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/CommandServiceTest.java
@@ -20,12 +20,14 @@ import org.mockito.Spy;
 import org.springframework.context.ApplicationEventPublisher;
 
 import de.itvsh.ozg.pluto.common.callcontext.CallContextTestFactory;
+import de.itvsh.ozg.pluto.common.callcontext.CallContextUserTestFactory;
+import de.itvsh.ozg.pluto.common.callcontext.CurrentUserService;
 import de.itvsh.ozg.pluto.vorgang.Vorgang.Status;
 import de.itvsh.ozg.pluto.vorgang.VorgangTestFactory;
 
 class CommandServiceTest {
 
-	@Spy // NOSONAR
+	@Spy
 	@InjectMocks
 	private CommandService service;
 
@@ -33,6 +35,8 @@ class CommandServiceTest {
 	private CommandRepository repository;
 	@Mock
 	private ApplicationEventPublisher publisher;
+	@Mock
+	private CurrentUserService currentUserService;
 
 	@Nested
 	class TestCreateCommand {
@@ -63,6 +67,49 @@ class CommandServiceTest {
 			assertThat(command.getPreviousStatus()).isEqualTo(Status.ANGENOMMEN);
 		}
 
+		@Test
+		void shouldHandleMissingCallContext() {
+			var request = CreateCommandRequestTestFactory.createBuilder().callContext(null).build();
+
+			var command = service.createCommand(request, Optional.of(Status.ANGENOMMEN));
+
+			assertThat(command).isNotNull();
+		}
+
+		@Nested
+		class ShouldAddUser {
+
+			@Test
+			void fromCallContext() {
+				when(currentUserService.findUser()).thenReturn(Optional.empty());
+
+				var command = service.createCommand(request, Optional.of(Status.ANGENOMMEN));
+
+				assertThat(command.getCreatedBy()).isEqualTo(UserTestFactory.ID);
+			}
+
+			@Test
+			void fromUserService() {
+				var request = CreateCommandRequestTestFactory.createBuilder().callContext(null).build();
+				when(currentUserService.findUser()).thenReturn(Optional.of(CallContextUserTestFactory.create()));
+
+				var command = service.createCommand(request, Optional.of(Status.ANGENOMMEN));
+
+				assertThat(command.getCreatedBy()).isEqualTo(UserTestFactory.ID);
+			}
+
+			@Test
+			void ifBothArePresentFromUserService() {
+				when(currentUserService.findUser())
+						.thenReturn(Optional.of(CallContextUserTestFactory.createBuilder().userId(Optional.of("other")).build()));
+
+				var command = service.createCommand(request, Optional.of(Status.ANGENOMMEN));
+
+				assertThat(command.getCreatedBy()).isEqualTo("other");
+			}
+
+		}
+
 		@Test
 		void shouldHandleEmptyUser() {
 			var request = CreateCommandRequestTestFactory.createBuilder().callContext(CallContextTestFactory.createBuilder().user(null).build())
diff --git a/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/CommandTestFactory.java b/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/CommandTestFactory.java
index 3f16352fd6c8c97a99578fed4a053adeb7f9062a..6f1feca039d844ea68b8624a8883d8b3c64acdea 100644
--- a/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/CommandTestFactory.java
+++ b/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/CommandTestFactory.java
@@ -36,6 +36,6 @@ public class CommandTestFactory {
 				.relationId(RELATION_ID)
 				.relationVersion(RELATION_VERSION)
 				.previousStatus(PREV_STATUS)
-				.order(ORDER);
+				.order(ORDER.name());
 	}
 }
diff --git a/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/CreateCommandRequestTestFactory.java b/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/CreateCommandRequestTestFactory.java
index bcf0d8767f80c2086b5ece3470adbbbb5578eb1c..bb8cb428cef92cc6b92b177dcd15a31f9da2e558 100644
--- a/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/CreateCommandRequestTestFactory.java
+++ b/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/CreateCommandRequestTestFactory.java
@@ -18,7 +18,7 @@ public class CreateCommandRequestTestFactory {
 		return CreateCommandRequest.builder()
 				.callContext(CALLCONTEXT)
 				.relationId(RELATION_ID)
-				.order(ORDER)
+				.order(ORDER.name())
 				.relationVersion(RELATION_VERSION);
 	}
 }
diff --git a/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/GrpcCommandMapperTest.java b/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/GrpcCommandMapperTest.java
index 288c7e27c827d20240e2ab97d1af2884af61974e..8e583c5ad8bbdc26fe50d592abb3f9641ee90c0b 100644
--- a/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/GrpcCommandMapperTest.java
+++ b/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/GrpcCommandMapperTest.java
@@ -17,9 +17,7 @@ class GrpcCommandMapperTest {
 
 		@Test
 		void shouldMap() {
-			Command command = CommandTestFactory.create();
-
-			GrpcCommand grpcCommand = mapper.toGrpc(command);
+			GrpcCommand grpcCommand = mapper.toGrpc(CommandTestFactory.create());
 
 			assertThat(grpcCommand.getId()).isEqualTo(CommandTestFactory.ID);
 			assertThat(grpcCommand.getCreatedAt()).isEqualTo(CommandTestFactory.CREATED_AT_STR);
@@ -28,5 +26,6 @@ class GrpcCommandMapperTest {
 			assertThat(grpcCommand.getRelationId()).isEqualTo(CommandTestFactory.RELATION_ID);
 			assertThat(grpcCommand.getOrder()).isNotNull();
 		}
+
 	}
 }
\ No newline at end of file
diff --git a/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/GrpcCommandServiceTest.java b/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/GrpcCommandServiceTest.java
index 791ff31cbf4d61491303b9a23f6015bf532427df..5c04e64bac486e88f2ee75d808b63227c671018f 100644
--- a/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/GrpcCommandServiceTest.java
+++ b/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/GrpcCommandServiceTest.java
@@ -1,5 +1,6 @@
 package de.itvsh.ozg.pluto.command;
 
+import static org.assertj.core.api.Assertions.*;
 import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
 
@@ -21,8 +22,6 @@ import org.mockito.InjectMocks;
 import org.mockito.Mock;
 import org.mockito.Spy;
 
-import static org.assertj.core.api.Assertions.*;
-
 import de.itvsh.ozg.pluto.common.security.PolicyService;
 import de.itvsh.ozg.pluto.grpc.command.GrpcCommand;
 import de.itvsh.ozg.pluto.grpc.command.GrpcCommandResponse;
@@ -119,22 +118,24 @@ class GrpcCommandServiceTest {
 	}
 
 	@Nested
-	class TestIsRelatedToVorgang {
+	class TestIsStatusChangeOrder {
 
 		@ParameterizedTest
-		@EnumSource(mode = Mode.INCLUDE, names = { "FORWARD_SUCCESSFULL", "FORWARD_FAILED", "RESEND_POSTFACH_MAIL", "UPDATE_ATTACHED_ITEM" })
-		void shouldReturnFalse(Order order) {
-			var result = service.isRelatedToVorgang(order);
+		@EnumSource(mode = Mode.INCLUDE, names = { "VORGANG_ANNEHMEN", "VORGANG_VERWERFEN", "VORGANG_ZURUECKHOLEN", "VORGANG_BEARBEITEN",
+				"VORGANG_BESCHEIDEN", "VORGANG_ZURUECKSTELLEN", "VORGANG_ABSCHLIESSEN", "VORGANG_WIEDEREROEFFNEN" })
+		void shouldReturnTrue(Order order) {
+			var result = service.isStatusChangeOrder(order.name());
 
-			assertThat(result).isFalse();
+			assertThat(result).isTrue();
 		}
 
 		@ParameterizedTest
-		@EnumSource(mode = Mode.EXCLUDE, names = { "FORWARD_SUCCESSFULL", "FORWARD_FAILED", "RESEND_POSTFACH_MAIL", "UPDATE_ATTACHED_ITEM" })
-		void shouldReturnTrue(Order order) {
-			var result = service.isRelatedToVorgang(order);
+		@EnumSource(mode = Mode.EXCLUDE, names = { "VORGANG_ANNEHMEN", "VORGANG_VERWERFEN", "VORGANG_ZURUECKHOLEN", "VORGANG_BEARBEITEN",
+				"VORGANG_BESCHEIDEN", "VORGANG_ZURUECKSTELLEN", "VORGANG_ABSCHLIESSEN", "VORGANG_WIEDEREROEFFNEN" })
+		void shouldReturnFalse(Order order) {
+			var result = service.isStatusChangeOrder(order.name());
 
-			assertThat(result).isTrue();
+			assertThat(result).isFalse();
 		}
 	}
 
diff --git a/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/GrpcCreateCommandRequestMapperTest.java b/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/GrpcCreateCommandRequestMapperTest.java
index 37b18a13b6875d48b8e4db04a4d5c4156b19d322..d808512808d7b23662a45a61161b67439442a88a 100644
--- a/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/GrpcCreateCommandRequestMapperTest.java
+++ b/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/GrpcCreateCommandRequestMapperTest.java
@@ -78,14 +78,26 @@ class GrpcCreateCommandRequestMapperTest {
 			assertThat(request.getRelationId()).isEqualTo(GrpcCreateCommandRequestTestFactory.RELATION_ID);
 		}
 
-		@Test
-		void shouldMapOrder() {
+		@Nested
+		class shouldMapOrder {
 
-			GrpcCreateCommandRequest grpcRequest = GrpcCreateCommandRequestTestFactory.create();
+			@Test
+			void fromOrderStringField() {
+				GrpcCreateCommandRequest grpcRequest = GrpcCreateCommandRequestTestFactory.createBuilder().clearOrder().build();
 
-			CreateCommandRequest request = mapper.fromGrpc(grpcRequest);
+				CreateCommandRequest request = mapper.fromGrpc(grpcRequest);
 
-			assertThat(request.getOrder().name()).isEqualTo(GrpcCreateCommandRequestTestFactory.ORDER.name());
+				assertThat(request.getOrder()).isEqualTo(GrpcCreateCommandRequestTestFactory.ORDER.name());
+			}
+
+			@Test
+			void fromOrderField() {
+				GrpcCreateCommandRequest grpcRequest = GrpcCreateCommandRequestTestFactory.createBuilder().clearOrderString().build();
+
+				CreateCommandRequest request = mapper.fromGrpc(grpcRequest);
+
+				assertThat(request.getOrder()).isEqualTo(GrpcCreateCommandRequestTestFactory.ORDER.name());
+			}
 		}
 	}
 }
\ No newline at end of file
diff --git a/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/GrpcCreateCommandRequestTestFactory.java b/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/GrpcCreateCommandRequestTestFactory.java
index e282941cc9e90fd993abf7a57cacf52fa5362b9b..479731db4ad1649ac6cf39271c027c2256e6af71 100644
--- a/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/GrpcCreateCommandRequestTestFactory.java
+++ b/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/GrpcCreateCommandRequestTestFactory.java
@@ -21,6 +21,7 @@ public class GrpcCreateCommandRequestTestFactory {
 				.setCallContext(CALLCONTEXT)
 				.setRelationId(RELATION_ID)
 				.setOrder(ORDER)
+				.setOrderString(ORDER.name())
 				.setRelationVersion(RELATION_VERSION)
 				.setVorgangId(VorgangTestFactory.ID);
 	}
diff --git a/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/PersistPostfachMailByCommandServiceITCase.java b/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/PersistPostfachMailByCommandServiceITCase.java
index d73dcb0d902a0121d3f851bdbba69c80e441353b..26fb29ba946dc96a221223563403577ee0b588f7 100644
--- a/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/PersistPostfachMailByCommandServiceITCase.java
+++ b/pluto-server/src/test/java/de/itvsh/ozg/pluto/command/PersistPostfachMailByCommandServiceITCase.java
@@ -1,5 +1,6 @@
 package de.itvsh.ozg.pluto.command;
 
+import static org.assertj.core.api.Assertions.*;
 import static org.junit.jupiter.api.Assertions.*;
 
 import java.util.Collections;
@@ -15,8 +16,6 @@ import org.springframework.data.mongodb.core.MongoOperations;
 import org.springframework.security.access.AccessDeniedException;
 import org.springframework.security.test.context.support.WithMockUser;
 
-import static org.assertj.core.api.Assertions.*;
-
 import de.itvsh.kop.common.test.DataITCase;
 import de.itvsh.ozg.mail.postfach.PostfachMailTestFactory;
 import de.itvsh.ozg.pluto.attached_item.VorgangAttachedItem;
diff --git a/pluto-server/src/test/java/de/itvsh/ozg/pluto/vorgang/VorgangEventListenerTest.java b/pluto-server/src/test/java/de/itvsh/ozg/pluto/vorgang/VorgangEventListenerTest.java
index 074a00933c7421ee917cf3964e61fd7d7b771962..7eb716343d1da23a42ad6ff16eab8d7c995ff79c 100644
--- a/pluto-server/src/test/java/de/itvsh/ozg/pluto/vorgang/VorgangEventListenerTest.java
+++ b/pluto-server/src/test/java/de/itvsh/ozg/pluto/vorgang/VorgangEventListenerTest.java
@@ -12,7 +12,7 @@ import de.itvsh.ozg.pluto.vorgang.redirect.VorgangRedirectedEventTestFactory;
 
 class VorgangEventListenerTest {
 
-	@InjectMocks // NOSONAR
+	@InjectMocks
 	private VorgangEventListener listener;
 
 	@Mock
diff --git a/pluto-server/src/test/java/de/itvsh/ozg/pluto/vorgang/redirect/ForwardingEventListenerITCase.java b/pluto-server/src/test/java/de/itvsh/ozg/pluto/vorgang/redirect/ForwardingEventListenerITCase.java
index fb06c6da42d5bbac06c12d4c37e200cff0ed87a3..ff69c6f932db7ac54c369ff7d1168cca2fa4bf57 100644
--- a/pluto-server/src/test/java/de/itvsh/ozg/pluto/vorgang/redirect/ForwardingEventListenerITCase.java
+++ b/pluto-server/src/test/java/de/itvsh/ozg/pluto/vorgang/redirect/ForwardingEventListenerITCase.java
@@ -38,7 +38,7 @@ class ForwardingEventListenerITCase {
 	class TestForwardVorgang {
 		@Test
 		void shouldCallForwardingService() {
-			var command = CommandTestFactory.createBuilder().order(Order.REDIRECT_VORGANG).build();
+			var command = CommandTestFactory.createBuilder().order(Order.REDIRECT_VORGANG.name()).build();
 
 			publisher.publishEvent(CommandCreatedEventTestFactory.create(command));
 
@@ -61,7 +61,7 @@ class ForwardingEventListenerITCase {
 		@ParameterizedTest
 		@EnumSource(mode = Mode.EXCLUDE, names = { "REDIRECT_VORGANG" })
 		void shouldNOTCallServiceOnAnyOtherOrder(Order order) {
-			Command command = CommandTestFactory.createBuilder().order(order).build();
+			Command command = CommandTestFactory.createBuilder().order(order.name()).build();
 
 			publisher.publishEvent(MailSentEventTestFactory.create(command));
 
@@ -73,7 +73,7 @@ class ForwardingEventListenerITCase {
 	class CommandCreatedEvent {
 		@Test
 		void shouldCallForwardingService() {
-			var command = CommandTestFactory.createBuilder().order(Order.FORWARD_SUCCESSFULL).build();
+			var command = CommandTestFactory.createBuilder().order(Order.FORWARD_SUCCESSFULL.name()).build();
 
 			publisher.publishEvent(CommandCreatedEventTestFactory.create(command));
 
diff --git a/pluto-server/src/test/java/de/itvsh/ozg/pluto/vorgang/redirect/ForwardingEventListenerTest.java b/pluto-server/src/test/java/de/itvsh/ozg/pluto/vorgang/redirect/ForwardingEventListenerTest.java
index 3126553a10fa58e3bc8b295359413ebe65332acb..91e165aaecad129a65a3e8feb541b0d50e28e4ca 100644
--- a/pluto-server/src/test/java/de/itvsh/ozg/pluto/vorgang/redirect/ForwardingEventListenerTest.java
+++ b/pluto-server/src/test/java/de/itvsh/ozg/pluto/vorgang/redirect/ForwardingEventListenerTest.java
@@ -39,7 +39,7 @@ class ForwardingEventListenerTest {
 
 		@Test
 		void shouldCallService() {
-			Command command = CommandTestFactory.createBuilder().order(Order.FORWARD_SUCCESSFULL).build();
+			Command command = CommandTestFactory.createBuilder().order(Order.FORWARD_SUCCESSFULL.name()).build();
 
 			listener.markAsSuccessfull(CommandCreatedEventTestFactory.create(command));
 
@@ -53,7 +53,7 @@ class ForwardingEventListenerTest {
 
 		@Test
 		void shouldCallService() {
-			Command command = CommandTestFactory.createBuilder().order(Order.FORWARD_FAILED).build();
+			Command command = CommandTestFactory.createBuilder().order(Order.FORWARD_FAILED.name()).build();
 
 			listener.markAsFailed(CommandCreatedEventTestFactory.create(command));