diff --git a/.liquibase/Data_alias/changelog.xml b/.liquibase/Data_alias/changelog.xml
index e1bc0e56ff6bfbef3118c4546fe3723e4fa50e1c..921b8ee5c41a6f6e8c1afa836ab1ad5e23073926 100644
--- a/.liquibase/Data_alias/changelog.xml
+++ b/.liquibase/Data_alias/changelog.xml
@@ -28,4 +28,4 @@
     
     <include relativeToChangelogFile="true" file="basic/workflows/changelog.xml" context="workflow"/>
     <include relativeToChangelogFile="true" file="basic/_demoData/changelog.xml" context="example"/>
-</databaseChangeLog>
\ No newline at end of file
+</databaseChangeLog>
diff --git a/entity/360Degree_entity/entityfields/organisationobjects/children/objecttype_param/valueProcess.js b/entity/360Degree_entity/entityfields/organisationobjects/children/objecttype_param/valueProcess.js
index af517cc087c53afa61ed3a3fe5d96a74036fd395..4af5ac509709380c364e4612356f0efa6da0b7bc 100644
--- a/entity/360Degree_entity/entityfields/organisationobjects/children/objecttype_param/valueProcess.js
+++ b/entity/360Degree_entity/entityfields/organisationobjects/children/objecttype_param/valueProcess.js
@@ -18,7 +18,19 @@ var res = {
         "parentField":"TASK_TASKID",
         "contactIdField":"OBJECT_ROWID"
     },
-    "Advertising": {}
+    "Advertising": {},
+    "Bulkmail": {        
+        "subContext":"BulkmailRecipient",
+        "childField":"BULKMAIL_ID",
+        "parentField":"BULKMAILID",
+        "contactIdField":"CONTACT_ID"
+    },
+    "SerialLetter": {        
+        "subContext":"LetterRecipient",
+        "childField":"SERIALLETTER_ID",
+        "parentField":"SERIALLETTERID",
+        "contactIdField":"CONTACT_ID"
+    }
 }
 
 result.string(JSON.stringify(res))
\ No newline at end of file
diff --git a/entity/360Degree_entity/entityfields/personobjects/children/objecttype_param/valueProcess.js b/entity/360Degree_entity/entityfields/personobjects/children/objecttype_param/valueProcess.js
index 0a08d4ff5678b28b58f9ba89416ca49207ccb812..8da8fc4b9635c98a0652a36c3c7ab52d775aa99e 100644
--- a/entity/360Degree_entity/entityfields/personobjects/children/objecttype_param/valueProcess.js
+++ b/entity/360Degree_entity/entityfields/personobjects/children/objecttype_param/valueProcess.js
@@ -28,6 +28,18 @@ var res = {
     }, 
     "Advertising": {  
         "contactIdField":"CONTACT_ID"
+    },
+    "Bulkmail": {        
+        "subContext":"BulkmailRecipient",
+        "childField":"BULKMAIL_ID",
+        "parentField":"BULKMAILID",
+        "contactIdField":"CONTACT_ID"
+    },
+    "SerialLetter": {        
+        "subContext":"LetterRecipient",
+        "childField":"SERIALLETTER_ID",
+        "parentField":"SERIALLETTERID",
+        "contactIdField":"CONTACT_ID"
     }
 };
 
diff --git a/entity/BulkMailAddRecipients_entity/entityfields/recipientcountmessage/valueProcess.js b/entity/BulkMailAddRecipients_entity/entityfields/recipientcountmessage/valueProcess.js
index 67be7554841dc3d74cbef94a307675ee7e5b1c1d..170480c88f25228bc2b84f4e0ebe8b084f1b2209 100644
--- a/entity/BulkMailAddRecipients_entity/entityfields/recipientcountmessage/valueProcess.js
+++ b/entity/BulkMailAddRecipients_entity/entityfields/recipientcountmessage/valueProcess.js
@@ -1,10 +1,11 @@
-import("Util_lib");
 import("system.translate");
 import("system.result");
 import("system.vars");
+import("Util_lib");
 
-var validIdCount = (Utils.parseJSON(vars.get("$field.validContactIds")) || []).length;
 var message = "";
+var validIdCount = (Utils.parseJSON(vars.get("$field.validContactIds")) || []).length;
+
 if (!vars.get("$sys.validationerrors"))
 {
     if (validIdCount == 0)
@@ -13,8 +14,18 @@ if (!vars.get("$sys.validationerrors"))
     }
     else
     {
-        message = translate.withArguments("%0 new recipients will be added to the bulk mail.", [validIdCount]);
         var notAdded = vars.get("$field.notAddedCount")
+        message = translate.withArguments("%0 new recipients will be added to the bulk mail.", [validIdCount]);
+        
+        if (validIdCount == 1) 
+        {
+            message = translate.withArguments("%0 recipient will be added to the bulk mail.", [validIdCount]);
+        }
+        else
+        {
+            message = translate.withArguments("%0 new recipients will be added to the bulk mail.", [validIdCount]);
+        }
+        
         if (notAdded > 0)
         {
             message += "\n" + translate.withArguments("%0 of the chosen records are already recipients or don't have an e-mail set", [notAdded]);
diff --git a/entity/BulkMailRecipient_entity/BulkMailRecipient_entity.aod b/entity/BulkMailRecipient_entity/BulkMailRecipient_entity.aod
index 4c13d49a9ff7c5b6a0871afa7cf64807c876a35c..c2ddff2ba4a915497a1f868c8c6c5b3a4ea60927 100644
--- a/entity/BulkMailRecipient_entity/BulkMailRecipient_entity.aod
+++ b/entity/BulkMailRecipient_entity/BulkMailRecipient_entity.aod
@@ -4,6 +4,7 @@
   <title>Recipient</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/BulkMailRecipient_entity/documentation.adoc</documentation>
+  <icon>VAADIN:AT</icon>
   <siblings>
     <element>Communication_entity</element>
   </siblings>
diff --git a/entity/BulkMailRecipient_entity/recordcontainers/db/conditionProcess.js b/entity/BulkMailRecipient_entity/recordcontainers/db/conditionProcess.js
index fbbbe546a090687cf8aec7d09aa02854a48bbe63..ccd0e0e9dad62278d126e3c1285e43ef8900b0ac 100644
--- a/entity/BulkMailRecipient_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/BulkMailRecipient_entity/recordcontainers/db/conditionProcess.js
@@ -10,7 +10,10 @@ var excludeWithCommunicationRejection = Utils.toBoolean(vars.get("$param.Exclude
 var excludedStatus = Utils.parseJSON(vars.get("$param.ExcludedStatus_param"));
 var isTestMail = Utils.toBoolean(vars.get("$param.IsTestMail_param"));
 
-var condition = newWhere("BULKMAILRECIPIENT.BULKMAIL_ID", "$param.BulkMailId_param");
+var condition = newWhere()
+
+condition.andIfSet("BULKMAILRECIPIENT.BULKMAIL_ID", "$param.BulkMailId_param");
+
 if (isTestMail)
 {
     condition.and("BULKMAILRECIPIENT.IS_TEST_RECIPIENT", 1);
diff --git a/entity/BulkMail_entity/BulkMail_entity.aod b/entity/BulkMail_entity/BulkMail_entity.aod
index f755fbfd886dd8b588903a8b66f1eb0b7c0a1a89..3427e561fc9ca477b447c9bb01454e79c40a7f07 100644
--- a/entity/BulkMail_entity/BulkMail_entity.aod
+++ b/entity/BulkMail_entity/BulkMail_entity.aod
@@ -8,6 +8,7 @@
   <grantUpdateProcess>%aditoprj%/entity/BulkMail_entity/grantUpdateProcess.js</grantUpdateProcess>
   <grantDeleteProcess>%aditoprj%/entity/BulkMail_entity/grantDeleteProcess.js</grantDeleteProcess>
   <contentTitleProcess>%aditoprj%/entity/BulkMail_entity/contentTitleProcess.js</contentTitleProcess>
+  <contentDescriptionProcess>%aditoprj%/entity/BulkMail_entity/contentDescriptionProcess.js</contentDescriptionProcess>
   <afterUiInit>%aditoprj%/entity/BulkMail_entity/afterUiInit.js</afterUiInit>
   <iconId>VAADIN:AT</iconId>
   <titlePlural>Bulk mails</titlePlural>
@@ -382,6 +383,13 @@
         <fieldName>#PROVIDER</fieldName>
       </dependency>
     </entityConsumer>
+    <entityField>
+      <name>ACTIVE</name>
+    </entityField>
+    <entityField>
+      <name>DATE_NEW</name>
+      <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/date_new/valueProcess.js</valueProcess>
+    </entityField>
     <entityField>
       <name>recipientCount</name>
       <title>Recipients</title>
@@ -587,6 +595,10 @@
           <recordfield>BULKMAIL.INTEREST_ID</recordfield>
           <isFilterable v="true" />
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>ACTIVE.value</name>
+          <expression>%aditoprj%/entity/BulkMail_entity/recordcontainers/db/recordfieldmappings/active.value/expression.js</expression>
+        </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>deliveredMailCount.value</name>
           <expression>%aditoprj%/entity/BulkMail_entity/recordcontainers/db/recordfieldmappings/deliveredmailcount.value/expression.js</expression>
diff --git a/entity/BulkMail_entity/contentDescriptionProcess.js b/entity/BulkMail_entity/contentDescriptionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..d954efdae7962397780136ac64484f72cabc284a
--- /dev/null
+++ b/entity/BulkMail_entity/contentDescriptionProcess.js
@@ -0,0 +1,5 @@
+import("Keyword_lib");
+import("system.result");
+import("system.vars");
+
+result.string(KeywordUtils.getViewValue("BulkMailStatus", vars.get("$field.STATUS")));
\ No newline at end of file
diff --git a/entity/BulkMail_entity/entityfields/date_new/valueProcess.js b/entity/BulkMail_entity/entityfields/date_new/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..5ddc88bf84a32d1d627dd42a88c3afd9ee0528c2
--- /dev/null
+++ b/entity/BulkMail_entity/entityfields/date_new/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.result");
+import("system.vars");
+
+if (vars.get("$this.value") != null) 
+{
+    result.string(vars.get("$sys.date"));
+}
\ No newline at end of file
diff --git a/entity/BulkMail_entity/recordcontainers/db/recordfieldmappings/active.value/expression.js b/entity/BulkMail_entity/recordcontainers/db/recordfieldmappings/active.value/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..e5bfa3bbe7f58d2ffaf401248014a6d1a560d2de
--- /dev/null
+++ b/entity/BulkMail_entity/recordcontainers/db/recordfieldmappings/active.value/expression.js
@@ -0,0 +1,3 @@
+import("system.result");
+
+result.string("true");
\ No newline at end of file
diff --git a/entity/LetterRecipient_entity/LetterRecipient_entity.aod b/entity/LetterRecipient_entity/LetterRecipient_entity.aod
index 2672cecc140933313a57a6104b1ab7af0db9c4bb..fa499a6fcbc90f8ac742026755d0f45a5d105e18 100644
--- a/entity/LetterRecipient_entity/LetterRecipient_entity.aod
+++ b/entity/LetterRecipient_entity/LetterRecipient_entity.aod
@@ -3,6 +3,7 @@
   <name>LetterRecipient_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <documentation>%aditoprj%/entity/LetterRecipient_entity/documentation.adoc</documentation>
+  <icon>VAADIN:ENVELOPE</icon>
   <siblings>
     <element>Address_entity</element>
   </siblings>
diff --git a/entity/LetterRecipient_entity/recordcontainers/db/conditionProcess.js b/entity/LetterRecipient_entity/recordcontainers/db/conditionProcess.js
index e7aa6cb64367febbfa1f49b0797987b84fdc94d3..3b6961a767e8b557c1092f0dcaaaf2f50d02bcd9 100644
--- a/entity/LetterRecipient_entity/recordcontainers/db/conditionProcess.js
+++ b/entity/LetterRecipient_entity/recordcontainers/db/conditionProcess.js
@@ -2,4 +2,7 @@ import("system.vars");
 import("system.result");
 import("Sql_lib");
 
-result.string(newWhere("LETTERRECIPIENT.SERIALLETTER_ID", "$param.SerialLetterId_param").toString());
\ No newline at end of file
+var cond = newWhere();
+cond.andIfSet("LETTERRECIPIENT.SERIALLETTER_ID", "$param.SerialLetterId_param")
+
+result.string(cond.toString());
\ No newline at end of file
diff --git a/entity/Organisation_entity/Organisation_entity.aod b/entity/Organisation_entity/Organisation_entity.aod
index 6c355a5c77406c3d53605f4a89081b54306cc472..a528d24fef8d4ebc674a0f97ef1e2bb3bd8ce083 100644
--- a/entity/Organisation_entity/Organisation_entity.aod
+++ b/entity/Organisation_entity/Organisation_entity.aod
@@ -1145,9 +1145,9 @@
           <name>addToBulkMailFromTable</name>
           <title>Add to Bulkmail</title>
           <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtobulkmailfromtable/onActionProcess.js</onActionProcess>
-          <isObjectAction v="false" />
+          <isObjectAction v="true" />
           <iconId>VAADIN:AT</iconId>
-          <state>EDITABLE</state>
+          <state>DISABLED</state>
           <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtobulkmailfromtable/stateProcess.js</stateProcess>
           <tooltipProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtobulkmailfromtable/tooltipProcess.js</tooltipProcess>
         </entityActionField>
@@ -1155,8 +1155,9 @@
           <name>addToSerialLetter</name>
           <title>Add to serial letter</title>
           <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtoserialletter/onActionProcess.js</onActionProcess>
-          <isObjectAction v="false" />
+          <isObjectAction v="true" />
           <iconId>VAADIN:ENVELOPES</iconId>
+          <state>DISABLED</state>
           <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtoserialletter/stateProcess.js</stateProcess>
           <tooltipProcess>%aditoprj%/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtoserialletter/tooltipProcess.js</tooltipProcess>
         </entityActionField>
diff --git a/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtobulkmailfromtable/stateProcess.js b/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtobulkmailfromtable/stateProcess.js
index 7790d58dc46f1ad3c1e72cb0d6071c4de68c1b87..f4123646cc1c98656d544417e074d51307f24f84 100644
--- a/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtobulkmailfromtable/stateProcess.js
+++ b/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtobulkmailfromtable/stateProcess.js
@@ -1,7 +1,11 @@
-import("FilterViewAction_lib");
+import("system.neon");
 import("system.vars");
 import("system.result");
 
-var orgCount = vars.get("$sys.datarowcount");
+var contactCount = vars.get("$sys.datarowcount");
+var selection = vars.get("$sys.selection");
 
-result.string(FilterViewActionUtils.getComponentStateByRowCount(orgCount));
\ No newline at end of file
+if (contactCount > 0 || selection.length > 0) 
+{
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+}
\ No newline at end of file
diff --git a/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtoserialletter/stateProcess.js b/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtoserialletter/stateProcess.js
index a1d1a7a758fb60e39ce6e294ef1c74fc4ff3b344..f4123646cc1c98656d544417e074d51307f24f84 100644
--- a/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtoserialletter/stateProcess.js
+++ b/entity/Organisation_entity/entityfields/filterviewactiongroup/children/addtoserialletter/stateProcess.js
@@ -1,7 +1,11 @@
-import("FilterViewAction_lib");
+import("system.neon");
 import("system.vars");
 import("system.result");
 
 var contactCount = vars.get("$sys.datarowcount");
+var selection = vars.get("$sys.selection");
 
-result.string(FilterViewActionUtils.getComponentStateByRowCount(contactCount));
\ No newline at end of file
+if (contactCount > 0 || selection.length > 0) 
+{
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+}
\ No newline at end of file
diff --git a/entity/Person_entity/Person_entity.aod b/entity/Person_entity/Person_entity.aod
index 1c38d88a63ab01c97bc1e3fd6c9e74e68648e549..baffc3d882433ac2f6eaff09dcceaa9e39280ea9 100644
--- a/entity/Person_entity/Person_entity.aod
+++ b/entity/Person_entity/Person_entity.aod
@@ -1088,8 +1088,9 @@
           <name>addToBulkMailFromTable</name>
           <title>Add to Bulkmail</title>
           <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/filterviewactiongroup/children/addtobulkmailfromtable/onActionProcess.js</onActionProcess>
-          <isObjectAction v="false" />
+          <isObjectAction v="true" />
           <iconId>VAADIN:AT</iconId>
+          <state>DISABLED</state>
           <stateProcess>%aditoprj%/entity/Person_entity/entityfields/filterviewactiongroup/children/addtobulkmailfromtable/stateProcess.js</stateProcess>
           <tooltipProcess>%aditoprj%/entity/Person_entity/entityfields/filterviewactiongroup/children/addtobulkmailfromtable/tooltipProcess.js</tooltipProcess>
         </entityActionField>
@@ -1098,8 +1099,9 @@
           <title>Add to serial letter</title>
           <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/filterviewactiongroup/children/addtoserialletter/onActionProcess.js</onActionProcess>
           <isMenuAction v="true" />
-          <isObjectAction v="false" />
+          <isObjectAction v="true" />
           <iconId>VAADIN:ENVELOPES</iconId>
+          <state>DISABLED</state>
           <stateProcess>%aditoprj%/entity/Person_entity/entityfields/filterviewactiongroup/children/addtoserialletter/stateProcess.js</stateProcess>
           <tooltipProcess>%aditoprj%/entity/Person_entity/entityfields/filterviewactiongroup/children/addtoserialletter/tooltipProcess.js</tooltipProcess>
         </entityActionField>
diff --git a/entity/Person_entity/entityfields/filterviewactiongroup/children/addtobulkmailfromtable/stateProcess.js b/entity/Person_entity/entityfields/filterviewactiongroup/children/addtobulkmailfromtable/stateProcess.js
index a1d1a7a758fb60e39ce6e294ef1c74fc4ff3b344..dbc3092f8b5b67c62c90a6ba8590266a81b0fe40 100644
--- a/entity/Person_entity/entityfields/filterviewactiongroup/children/addtobulkmailfromtable/stateProcess.js
+++ b/entity/Person_entity/entityfields/filterviewactiongroup/children/addtobulkmailfromtable/stateProcess.js
@@ -1,7 +1,11 @@
-import("FilterViewAction_lib");
+import("system.neon");
 import("system.vars");
 import("system.result");
 
 var contactCount = vars.get("$sys.datarowcount");
+var selection = vars.get("$sys.selection");
 
-result.string(FilterViewActionUtils.getComponentStateByRowCount(contactCount));
\ No newline at end of file
+if (contactCount > 0 || selection.length > 0) 
+{
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+}
diff --git a/entity/Person_entity/entityfields/filterviewactiongroup/children/addtoserialletter/stateProcess.js b/entity/Person_entity/entityfields/filterviewactiongroup/children/addtoserialletter/stateProcess.js
index a1d1a7a758fb60e39ce6e294ef1c74fc4ff3b344..dbc3092f8b5b67c62c90a6ba8590266a81b0fe40 100644
--- a/entity/Person_entity/entityfields/filterviewactiongroup/children/addtoserialletter/stateProcess.js
+++ b/entity/Person_entity/entityfields/filterviewactiongroup/children/addtoserialletter/stateProcess.js
@@ -1,7 +1,11 @@
-import("FilterViewAction_lib");
+import("system.neon");
 import("system.vars");
 import("system.result");
 
 var contactCount = vars.get("$sys.datarowcount");
+var selection = vars.get("$sys.selection");
 
-result.string(FilterViewActionUtils.getComponentStateByRowCount(contactCount));
\ No newline at end of file
+if (contactCount > 0 || selection.length > 0) 
+{
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+}
diff --git a/entity/SerialLetterAddRecipients_entity/entityfields/recipientcountmessage/valueProcess.js b/entity/SerialLetterAddRecipients_entity/entityfields/recipientcountmessage/valueProcess.js
index 3b3d66c60e9357e9627c8085febffecddc04af20..4916d9aa94f407e1f067a9e618c84e899f93abcc 100644
--- a/entity/SerialLetterAddRecipients_entity/entityfields/recipientcountmessage/valueProcess.js
+++ b/entity/SerialLetterAddRecipients_entity/entityfields/recipientcountmessage/valueProcess.js
@@ -2,20 +2,34 @@ import("system.translate");
 import("system.result");
 import("system.vars");
 
-var count = vars.getString("$field.recipientcount")
 var res = "";
-var resNotAdded = "\n\
-";
+var resNotAdded = "\n";
+var count = vars.getString("$field.recipientcount")
+
 if (count && !vars.get("$sys.validationerrors"))
 {
     if (count == "0")
+    {    
         res = translate.text("No new recipients found that can be added to the serial letter.");
+    }
     else
     {
-        res = translate.withArguments("%0 new recipients will be added to the serial letter.", [count]);
-        var notAdded = vars.get("$field.notAddedRecipients")
+        var notAdded = vars.get("$field.notAddedRecipients");
+        
+        if (count == 1)
+        {
+            res = translate.withArguments("%0 recipient will be added to the serial letter.", [count]);
+        }
+        else
+        {
+            res = translate.withArguments("%0 new recipients will be added to the serial letter.", [count]);
+        }
+        
+        
         if (notAdded > 0)
+        {    
             resNotAdded += translate.withArguments("%0 of the chosen records are already recipients.", [notAdded]);
+        }
     }
 }
 result.string(res + resNotAdded);
\ No newline at end of file
diff --git a/entity/SerialLetter_entity/SerialLetter_entity.aod b/entity/SerialLetter_entity/SerialLetter_entity.aod
index 3aa3b44fe5edd00375e1b1b881c2df8c5c6e2d67..36bf070c80c058072050723f64134933cda6c7cc 100644
--- a/entity/SerialLetter_entity/SerialLetter_entity.aod
+++ b/entity/SerialLetter_entity/SerialLetter_entity.aod
@@ -7,6 +7,7 @@
   <icon>VAADIN:ENVELOPES</icon>
   <grantDeleteProcess>%aditoprj%/entity/SerialLetter_entity/grantDeleteProcess.js</grantDeleteProcess>
   <contentTitleProcess>%aditoprj%/entity/SerialLetter_entity/contentTitleProcess.js</contentTitleProcess>
+  <contentDescriptionProcess>%aditoprj%/entity/SerialLetter_entity/contentDescriptionProcess.js</contentDescriptionProcess>
   <onValidation>%aditoprj%/entity/SerialLetter_entity/onValidation.js</onValidation>
   <iconId>VAADIN:ENVELOPE</iconId>
   <titlePlural>Serial letters</titlePlural>
@@ -195,6 +196,13 @@
       <iconId>VAADIN:CURLY_BRACKETS</iconId>
       <stateProcess>%aditoprj%/entity/SerialLetter_entity/entityfields/openadminview/stateProcess.js</stateProcess>
     </entityActionField>
+    <entityField>
+      <name>DATE_NEW</name>
+      <valueProcess>%aditoprj%/entity/SerialLetter_entity/entityfields/date_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>ACTIVE</name>
+    </entityField>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -241,6 +249,10 @@
           <name>STATUS.displayValue</name>
           <expression>%aditoprj%/entity/SerialLetter_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js</expression>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>ACTIVE.value</name>
+          <expression>%aditoprj%/entity/SerialLetter_entity/recordcontainers/db/recordfieldmappings/active.value/expression.js</expression>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
       <linkInformation>
         <linkInformation>
diff --git a/entity/SerialLetter_entity/contentDescriptionProcess.js b/entity/SerialLetter_entity/contentDescriptionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e5c485bdec047e5cbf0560dfb7011f63343472dd
--- /dev/null
+++ b/entity/SerialLetter_entity/contentDescriptionProcess.js
@@ -0,0 +1,5 @@
+import("Keyword_lib");
+import("system.result");
+import("system.vars");
+
+result.string(KeywordUtils.getViewValue("SerialLetterStatus", vars.get("$field.STATUS")));
\ No newline at end of file
diff --git a/entity/SerialLetter_entity/entityfields/date_new/valueProcess.js b/entity/SerialLetter_entity/entityfields/date_new/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..5079059fb366127001cc1bf55510e626544bc7f1
--- /dev/null
+++ b/entity/SerialLetter_entity/entityfields/date_new/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.result");
+import("system.vars");
+
+if (vars.get("$tis.value") != null)
+{
+    result.string(vars.get("$sys.date"));    
+}
\ No newline at end of file
diff --git a/entity/SerialLetter_entity/recordcontainers/db/recordfieldmappings/active.value/expression.js b/entity/SerialLetter_entity/recordcontainers/db/recordfieldmappings/active.value/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..e5bfa3bbe7f58d2ffaf401248014a6d1a560d2de
--- /dev/null
+++ b/entity/SerialLetter_entity/recordcontainers/db/recordfieldmappings/active.value/expression.js
@@ -0,0 +1,3 @@
+import("system.result");
+
+result.string("true");
\ No newline at end of file
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index 04553657a4dc152a48832d65f2772a8113597b1d..9b7b076de3357af3990893731d7fa739620f65c8 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -810,6 +810,10 @@
       <key>%0 new recipients will be added to the bulk mail.</key>
       <value>Der Serienmail werden %0 neue Empfänger hinzugefügt.</value>
     </entry>
+    <entry>
+      <key>%0 recipient will be added to the bulk mail.</key>
+      <value>Der Serienmail wird %0 neuer Empfänger hinzugefügt.</value>
+    </entry>
     <entry>
       <key>DSGVO Information</key>
       <value>DSGVO Informationen</value>
@@ -6860,6 +6864,10 @@
       <key>%0 new recipients will be added to the serial letter.</key>
       <value>Dem Serienbrief werden %0 neue Empfänger hinzugefügt.</value>
     </entry>
+    <entry>
+      <key>%0 recipient will be added to the serial letter.</key>
+      <value>Dem Serienbrief wird %0 neuer Empfänger hinzugefügt.</value>
+    </entry>
     <entry>
       <key>Add to serial letter</key>
       <value>Zu Serienbrief hinzufügen</value>
@@ -9716,7 +9724,7 @@ Bitte Datumseingabe prüfen</value>
     </entry>
     <entry>
       <key>No new recipients found that can be added to the serial letter.</key>
-      <value>Keine neuen empfänger gefunden die zum Serienbrief hinzugefügt werden können.</value>
+      <value>Keine neuen Empfänger gefunden die zum Serienbrief hinzugefügt werden können.</value>
     </entry>
     <entry>
       <key>New</key>
@@ -9804,7 +9812,7 @@ Bitte Datumseingabe prüfen</value>
     </entry>
     <entry>
       <key>Recipients after adding</key>
-      <value>Empfänger nach dem hinzufügen</value>
+      <value>Empfänger nach dem Hinzufügen</value>
     </entry>
     <entry>
       <key>%0 new participants will be added to the campaign.</key>
@@ -9955,7 +9963,7 @@ Bitte Datumseingabe prüfen</value>
     </entry>
     <entry>
       <key>No new recipients found that can be added to the bulk mail.</key>
-      <value>Keine neuen empfänger gefunden die zur Serienmail hinzugefügt werden können.</value>
+      <value>Keine neuen Empfänger gefunden die zur Serienmail hinzugefügt werden können.</value>
     </entry>
     <entry>
       <key>Titel</key>
@@ -11535,9 +11543,19 @@ Bitte Datumseingabe prüfen</value>
     </entry>
     <entry>
       <key>District: Name</key>
+      <value>Gebiet: Name</value>
     </entry>
     <entry>
       <key>District: Number</key>
+      <value>Gebiet: Nummer</value>
+    </entry>
+    <entry>
+      <key>Bulkmail</key>
+      <value>Serienmail</value>
+    </entry>
+    <entry>
+      <key>SerialLetter</key>
+      <value>Serienbrief</value>
     </entry>
     <entry>
       <key>Add selected workflow</key>
diff --git a/neonContext/BulkMail/BulkMail.aod b/neonContext/BulkMail/BulkMail.aod
index 2fa25f28a45c6747c6a28da2d488bca01c8ac0da..7ad143a612042c15f107cf042a7b9dc51f094fbc 100644
--- a/neonContext/BulkMail/BulkMail.aod
+++ b/neonContext/BulkMail/BulkMail.aod
@@ -3,6 +3,7 @@
   <name>BulkMail</name>
   <title>Bulk Mail</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
+  <icon>VAADIN:AT</icon>
   <mainView>BulkMailMain_view</mainView>
   <filterView>BulkMailFilter_view</filterView>
   <editView>BulkMailEdit_view</editView>
diff --git a/neonContext/SerialLetter/SerialLetter.aod b/neonContext/SerialLetter/SerialLetter.aod
index 80eb80c0e0787725be55d260ff3d8a8352cde37d..2dcc72a2bbc63da19bed07e7bc5b6e679b0c3104 100644
--- a/neonContext/SerialLetter/SerialLetter.aod
+++ b/neonContext/SerialLetter/SerialLetter.aod
@@ -3,6 +3,7 @@
   <name>SerialLetter</name>
   <title>Serial Letter</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
+  <icon>VAADIN:ENVELOPES</icon>
   <mainView>SerialLetterMain_view</mainView>
   <filterView>SerialLetterFilter_view</filterView>
   <editView>SerialLetterEdit_view</editView>
diff --git a/process/Bulkmail_lib/process.js b/process/Bulkmail_lib/process.js
index a2edd886efa103efd448a1f78f0225491e92ef98..aa2afd3aa5e7a74b74183e0a18a0ce7ffeee87cb 100644
--- a/process/Bulkmail_lib/process.js
+++ b/process/Bulkmail_lib/process.js
@@ -963,7 +963,7 @@ SerialLetterUtils.filterNewRecipients = function (pSerialLetterId, pContactIds)
                         , SqlBuilder.NOT_EXISTS())
                 // check if there's a commrestriction
                 .and(new CommunicationSettingsCondition()
-                    .postalAddress("CONTACT.ADDRESS_ID")
+                    .address("CONTACT.ADDRESS_ID")
                     .rejected()
                     .existNoSettings()
                     .buildCondition())