diff --git a/entity/CommunicationBlacklist_entity/CommunicationBlacklist_entity.aod b/entity/CommunicationBlacklist_entity/CommunicationBlacklist_entity.aod
index 58cbbc2265ecbeff8ff3fb8e80e2c5a44d4b5866..0b6d0eedc3e5dfada987166ab52fedb1ece253c0 100644
--- a/entity/CommunicationBlacklist_entity/CommunicationBlacklist_entity.aod
+++ b/entity/CommunicationBlacklist_entity/CommunicationBlacklist_entity.aod
@@ -62,6 +62,14 @@
         </entityParameter>
       </children>
     </entityConsumer>
+    <entityField>
+      <name>DATE_NEW</name>
+      <valueProcess>%aditoprj%/entity/CommunicationBlacklist_entity/entityfields/date_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_NEW</name>
+      <valueProcess>%aditoprj%/entity/CommunicationBlacklist_entity/entityfields/user_new/valueProcess.js</valueProcess>
+    </entityField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -95,6 +103,18 @@
           <recordfield>COMMUNICATIONBLACKLIST.START_DATE</recordfield>
           <isFilterable v="true" />
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_NEW.value</name>
+          <recordfield>COMMUNICATIONBLACKLIST.USER_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_NEW.value</name>
+          <recordfield>COMMUNICATIONBLACKLIST.DATE_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>BLACKLIST_TYPE.displayValue</name>
+          <expression>%aditoprj%/entity/CommunicationBlacklist_entity/recordcontainers/db/recordfieldmappings/blacklist_type.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
       <linkInformation>
         <linkInformation>
diff --git a/entity/CommunicationBlacklist_entity/entityfields/date_new/valueProcess.js b/entity/CommunicationBlacklist_entity/entityfields/date_new/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..1dbb1c3887f7cdc3e41fc6ddd1bcb3c4032843c5
--- /dev/null
+++ b/entity/CommunicationBlacklist_entity/entityfields/date_new/valueProcess.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+    result.string(vars.get("$sys.date"));
\ No newline at end of file
diff --git a/entity/CommunicationBlacklist_entity/entityfields/user_new/valueProcess.js b/entity/CommunicationBlacklist_entity/entityfields/user_new/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..8d9eb72f007f3af16b698a9483ed117730ec3680
--- /dev/null
+++ b/entity/CommunicationBlacklist_entity/entityfields/user_new/valueProcess.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+    result.string(vars.get("$sys.user"));
\ No newline at end of file
diff --git a/entity/CommunicationBlacklist_entity/recordcontainers/db/recordfieldmappings/blacklist_type.displayvalue/expression.js b/entity/CommunicationBlacklist_entity/recordcontainers/db/recordfieldmappings/blacklist_type.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..6cf151ddba7fdaa25222f92a4fe98aba79c4b803
--- /dev/null
+++ b/entity/CommunicationBlacklist_entity/recordcontainers/db/recordfieldmappings/blacklist_type.displayvalue/expression.js
@@ -0,0 +1,5 @@
+import("KeywordRegistry_basic");
+import("system.result");
+import("Keyword_lib");
+    
+result.string(KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.communicationBlacklistType(), "COMMUNICATIONBLACKLIST.BLACKLIST_TYPE"));
\ No newline at end of file
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index fe6b0952f301b795c9bd66f0d0cb23987a85b360..cb20815ec4a7fea373d3138539e53d6a8f828f34 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -47,6 +47,10 @@
       <key>discounted Vat</key>
       <value>Rbt. Mehrwertssteuer</value>
     </entry>
+    <entry>
+      <key>Filter can't be empty</key>
+      <value>Filter darf nicht leer sein</value>
+    </entry>
     <entry>
       <key>Illegal Parent Operator in buildFilterObj-Function:</key>
       <value>Übergebener Operator ungültig in Funktion "buildFilterObj"</value>
@@ -83,6 +87,10 @@
       <key>descending</key>
       <value>absteigend</value>
     </entry>
+    <entry>
+      <key>Recipient filter</key>
+      <value>Empfänger Filter</value>
+    </entry>
     <entry>
       <key>Salesproject phases</key>
       <value>Vertriebsprojektphasen</value>
diff --git a/process/MarketingCondition_lib/process.js b/process/MarketingCondition_lib/process.js
index b6dfc6cd6aa52a0818f2e148004ecad454b82c9d..bf6b48ce217a2a20908456a6b3b5ab1ed2d553bb 100644
--- a/process/MarketingCondition_lib/process.js
+++ b/process/MarketingCondition_lib/process.js
@@ -194,7 +194,7 @@ CommunicationBlacklist.getMailRecipientBlacklist = function ()
     return blacklist;
 }
 
-CommunicationBlacklistCondition.prototype.buildCondition = function ()
+CommunicationBlacklist.prototype.buildCondition = function ()
 {
     return new FilterSqlTranslator()
         .filter(this.filter)
diff --git a/process/SetCommunicationSetting_workflowService/process.js b/process/SetCommunicationSetting_workflowService/process.js
index 0af3ff5f171ea831dc43b0f859acb6bde6ed5cb2..8aa215483ef3c55f38b6b7eee051a878790e5a7e 100644
--- a/process/SetCommunicationSetting_workflowService/process.js
+++ b/process/SetCommunicationSetting_workflowService/process.js
@@ -1,3 +1,5 @@
+import("system.util");
+import("Sql_lib");
 import("KeywordRegistry_basic");
 import("system.vars");
 
@@ -5,4 +7,37 @@ var variables = JSON.parse(vars.get("$local.value"));
 var contactId = variables.contactId || variables.targetId;
 var channelType = variables.channelType;
 var channelId = variables.channelId;
-var status = variables.status || $KeywordRegistry.communicationSettingStatus$rejected();
\ No newline at end of file
+var status = variables.status || $KeywordRegistry.communicationSettingStatus$rejected();
+
+var settingsId = newSelect("COMMUNICATIONSETTINGSID")
+    .from("COMMUNICATIONSETTINGS")
+    .where("COMMUNICATIONSETTINGS.CONTACT_ID", contactId)
+    .and("COMMUNICATIONSETTINGS.CHANNEL_TYPE", channelType)
+    .and("COMMUNICATIONSETTINGS.CHANNEL_ID", channelId)
+    .cell();
+    
+if (settingsId)
+{
+    newWhere("COMMUNICATIONSETTINGS.COMMUNICATIONSETTINGSID")
+        .updateFields({"STATUS": status});
+}
+else
+{
+    settingsId = util.getNewUUID();
+    new SqlBuilder()
+        .tableName("COMMUNICATIONSETTINGS")
+        .insertFields({
+            "COMMUNICATIONSETTINGSID": settingsId,
+            "CHANNEL_TYPE": channelType,
+            "CHANNEL_ID": channelId,
+            "MEDIUM": medium,
+            "STATUS": status
+        });
+    new SqlBuilder()
+        .tableName("COMMUNICATIONLEGALBASE")
+        .insertFields({
+            "COMMUNICATIONLEGALBASEID": util.getNewUUID(),
+            "COMMUNICATIONSETTINGS_ID": settingsId,
+            "VERSION": 1
+        });
+}
\ No newline at end of file