diff --git a/.liquibase/Data_alias/basic/2021.1.2/Bulkmail/changelog.xml b/.liquibase/Data_alias/basic/2021.1.2/Bulkmail/changelog.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d87ac0cd40c27f3749c0037595e5082ebe4640b2
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.1.2/Bulkmail/changelog.xml
@@ -0,0 +1,4 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <include relativeToChangelogFile="true" file="insertBulkmailRecipientStatus.xml"/>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.1.2/Bulkmail/insertBulkmailRecipientStatus.xml b/.liquibase/Data_alias/basic/2021.1.2/Bulkmail/insertBulkmailRecipientStatus.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e6e14641083487f063abc3872df0e96034ff42e7
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.1.2/Bulkmail/insertBulkmailRecipientStatus.xml
@@ -0,0 +1,17 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+  <changeSet author="v.broens" id="c1ecd92d-3bc2-47ac-8403-d5a5b6f65a5d">
+     <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="2d5cacf8-1834-4ab0-98a6-442c20ec5fd6"/>
+            <column name="CONTAINER" value="BulkMailRecipientStatus"/>
+            <column name="AB_KEYWORD_CATEGORY_ID" value="25cb446a-24cd-4ebd-aad2-320da20830da"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="KEYID" value="EMAILADDED"/>
+            <column name="TITLE" value="Added"/>
+            <column name="SORTING" valueNumeric="6"/>
+        </insert>
+  </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/basic/2021.1.2/changelog.xml b/.liquibase/Data_alias/basic/2021.1.2/changelog.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0d2d913b1a834e44e8ca26d2b8e6e87bad6f7bde
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2021.1.2/changelog.xml
@@ -0,0 +1,5 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <include relativeToChangelogFile="true" file="Bulkmail/changelog.xml"/>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/.liquibase/Data_alias/changelog.xml b/.liquibase/Data_alias/changelog.xml
index e1bc0e56ff6bfbef3118c4546fe3723e4fa50e1c..be798212abcfd58410c70a3410e1096ad0412416 100644
--- a/.liquibase/Data_alias/changelog.xml
+++ b/.liquibase/Data_alias/changelog.xml
@@ -25,7 +25,7 @@
     <include relativeToChangelogFile="true" file="basic/2021.0.3/changelog.xml"/>
     <include relativeToChangelogFile="true" file="basic/2021.1.0/changelog.xml"/>
     <include relativeToChangelogFile="true" file="basic/2021.1.1/changelog.xml"/>
-    
+    <include relativeToChangelogFile="true" file="basic/2021.1.2/changelog.xml"/>
     <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
diff --git a/entity/BulkMailRecipient_entity/BulkMailRecipient_entity.aod b/entity/BulkMailRecipient_entity/BulkMailRecipient_entity.aod
index c2ddff2ba4a915497a1f868c8c6c5b3a4ea60927..d1e20d541e6c3ac3b44222ce52db650929fe1307 100644
--- a/entity/BulkMailRecipient_entity/BulkMailRecipient_entity.aod
+++ b/entity/BulkMailRecipient_entity/BulkMailRecipient_entity.aod
@@ -122,6 +122,7 @@
           <onActionProcess>%aditoprj%/entity/BulkMailRecipient_entity/entityfields/recipientactions/children/startmarketingworkflows/onActionProcess.js</onActionProcess>
           <isObjectAction v="false" />
           <iconId>VAADIN:ENVELOPES</iconId>
+          <tooltipProcess>%aditoprj%/entity/BulkMailRecipient_entity/entityfields/recipientactions/children/startmarketingworkflows/tooltipProcess.js</tooltipProcess>
         </entityActionField>
       </children>
     </entityActionGroup>
diff --git a/entity/BulkMailRecipient_entity/entityfields/recipientactions/children/removewithcommrestriction/tooltipProcess.js b/entity/BulkMailRecipient_entity/entityfields/recipientactions/children/removewithcommrestriction/tooltipProcess.js
index 0cd89c71d0e745d4f9d5924bf3996898c62534d7..fb725e50d9eef7ba236ce4fec2ea5775925bb7db 100644
--- a/entity/BulkMailRecipient_entity/entityfields/recipientactions/children/removewithcommrestriction/tooltipProcess.js
+++ b/entity/BulkMailRecipient_entity/entityfields/recipientactions/children/removewithcommrestriction/tooltipProcess.js
@@ -1,4 +1,4 @@
 import("system.translate");
 import("system.result");
 
-result.string(translate.text("Remove recipients with advertising ban"));
\ No newline at end of file
+result.string(translate.text("Remove recipients with communication rejection"));
\ No newline at end of file
diff --git a/entity/BulkMailRecipient_entity/entityfields/recipientactions/children/startmarketingworkflows/tooltipProcess.js b/entity/BulkMailRecipient_entity/entityfields/recipientactions/children/startmarketingworkflows/tooltipProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..f10ca98d11889935121eb5c675e17e66ff5bf004
--- /dev/null
+++ b/entity/BulkMailRecipient_entity/entityfields/recipientactions/children/startmarketingworkflows/tooltipProcess.js
@@ -0,0 +1,4 @@
+import("system.translate");
+import("system.result");
+
+result.string(translate.text("Start marketing mailing"));
\ No newline at end of file
diff --git a/entity/BulkMailRecipient_entity/entityfields/status/valueProcess.js b/entity/BulkMailRecipient_entity/entityfields/status/valueProcess.js
index 4f0cac524313cb538a4b1d1b6104f07b2a222518..0908c9f5d8c73ff4513ae04b007bdb1c50ef057d 100644
--- a/entity/BulkMailRecipient_entity/entityfields/status/valueProcess.js
+++ b/entity/BulkMailRecipient_entity/entityfields/status/valueProcess.js
@@ -4,4 +4,4 @@ import("system.result");
 import("KeywordRegistry_basic");
 
 if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
-    result.string($KeywordRegistry.bulkMailRecipientStatus$pending());
\ No newline at end of file
+    result.string($KeywordRegistry.bulkMailRecipientStatus$added());
\ No newline at end of file
diff --git a/entity/BulkMail_entity/BulkMail_entity.aod b/entity/BulkMail_entity/BulkMail_entity.aod
index 3427e561fc9ca477b447c9bb01454e79c40a7f07..f026a8f964359044219d62e18f97cda337902e89 100644
--- a/entity/BulkMail_entity/BulkMail_entity.aod
+++ b/entity/BulkMail_entity/BulkMail_entity.aod
@@ -275,40 +275,6 @@
       <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/emleditinfo/stateProcess.js</stateProcess>
       <valueProcess>%aditoprj%/entity/BulkMail_entity/entityfields/emleditinfo/valueProcess.js</valueProcess>
     </entityField>
-    <entityActionField>
-      <name>sendMail</name>
-      <title>Send</title>
-      <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/sendmail/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:PAPERPLANE</iconId>
-      <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/sendmail/stateProcess.js</stateProcess>
-      <tooltipProcess>%aditoprj%/entity/BulkMail_entity/entityfields/sendmail/tooltipProcess.js</tooltipProcess>
-    </entityActionField>
-    <entityActionField>
-      <name>testMail</name>
-      <title>Test email</title>
-      <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/testmail/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:CLIPBOARD_CHECK</iconId>
-    </entityActionField>
-    <entityActionField>
-      <name>downloadTemplate</name>
-      <title>Download template</title>
-      <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/downloadtemplate/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:FILE_FONT</iconId>
-      <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/downloadtemplate/stateProcess.js</stateProcess>
-    </entityActionField>
-    <entityActionField>
-      <name>copyBulkmail</name>
-      <title>Copy bulkmail</title>
-      <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/copybulkmail/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:COPY</iconId>
-    </entityActionField>
-    <entityActionField>
-      <name>openAdminView</name>
-      <title>Open admin view</title>
-      <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/openadminview/onActionProcess.js</onActionProcess>
-      <iconId>VAADIN:CURLY_BRACKETS</iconId>
-      <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/openadminview/stateProcess.js</stateProcess>
-    </entityActionField>
     <entityField>
       <name>DATE_TO_SEND</name>
       <title>Send Date</title>
@@ -502,6 +468,60 @@
         </entityParameter>
       </children>
     </entityConsumer>
+    <entityActionGroup>
+      <name>observeActionoGroup</name>
+      <children>
+        <entityActionField>
+          <name>observe</name>
+          <title>Observe</title>
+          <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/observeactionogroup/children/observe/onActionProcess.js</onActionProcess>
+          <iconId>VAADIN:EYE</iconId>
+          <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/observeactionogroup/children/observe/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/BulkMail_entity/entityfields/observeactionogroup/children/observe/titleProcess.js</titleProcess>
+        </entityActionField>
+        <entityActionField>
+          <name>cancelObservation</name>
+          <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/observeactionogroup/children/cancelobservation/onActionProcess.js</onActionProcess>
+          <iconId>VAADIN:EYE_SLASH</iconId>
+          <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/observeactionogroup/children/cancelobservation/stateProcess.js</stateProcess>
+          <titleProcess>%aditoprj%/entity/BulkMail_entity/entityfields/observeactionogroup/children/cancelobservation/titleProcess.js</titleProcess>
+        </entityActionField>
+      </children>
+    </entityActionGroup>
+    <entityActionField>
+      <name>sendMail</name>
+      <title>Send</title>
+      <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/sendmail/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:PAPERPLANE</iconId>
+      <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/sendmail/stateProcess.js</stateProcess>
+      <tooltipProcess>%aditoprj%/entity/BulkMail_entity/entityfields/sendmail/tooltipProcess.js</tooltipProcess>
+    </entityActionField>
+    <entityActionField>
+      <name>testMail</name>
+      <title>Test email</title>
+      <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/testmail/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CLIPBOARD_CHECK</iconId>
+    </entityActionField>
+    <entityActionField>
+      <name>downloadTemplate</name>
+      <title>Download template</title>
+      <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/downloadtemplate/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:FILE_FONT</iconId>
+      <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/downloadtemplate/stateProcess.js</stateProcess>
+    </entityActionField>
+    <entityActionField>
+      <name>copyBulkmail</name>
+      <title>Copy bulkmail</title>
+      <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/copybulkmail/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:COPY</iconId>
+    </entityActionField>
+    <entityActionField>
+      <name>openAdminView</name>
+      <title>Open admin view</title>
+      <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/openadminview/onActionProcess.js</onActionProcess>
+      <iconId>VAADIN:CURLY_BRACKETS</iconId>
+      <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/openadminview/stateProcess.js</stateProcess>
+    </entityActionField>
     <entityActionField>
       <name>openMosaico</name>
       <title>Open Mosaico</title>
diff --git a/entity/BulkMail_entity/entityfields/observeactionogroup/children/cancelobservation/onActionProcess.js b/entity/BulkMail_entity/entityfields/observeactionogroup/children/cancelobservation/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..35102b677cbb52d1d4a9723a42cceaef3fd5ea03
--- /dev/null
+++ b/entity/BulkMail_entity/entityfields/observeactionogroup/children/cancelobservation/onActionProcess.js
@@ -0,0 +1,3 @@
+import("Observation_lib");
+
+Observation.cancelAction();
\ No newline at end of file
diff --git a/entity/BulkMail_entity/entityfields/observeactionogroup/children/cancelobservation/stateProcess.js b/entity/BulkMail_entity/entityfields/observeactionogroup/children/cancelobservation/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..6ed1e38413fe09d9835cc86a64a09c6f01f49e74
--- /dev/null
+++ b/entity/BulkMail_entity/entityfields/observeactionogroup/children/cancelobservation/stateProcess.js
@@ -0,0 +1,6 @@
+import("system.vars");
+import("system.result");
+import("Observation_lib");
+import("system.neon");
+
+result.string(Observation.actionState(vars.get("$sys.selection"), true));
\ No newline at end of file
diff --git a/entity/BulkMail_entity/entityfields/observeactionogroup/children/cancelobservation/titleProcess.js b/entity/BulkMail_entity/entityfields/observeactionogroup/children/cancelobservation/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..87553a373a055879a524774695e4c18bcab617e9
--- /dev/null
+++ b/entity/BulkMail_entity/entityfields/observeactionogroup/children/cancelobservation/titleProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("system.vars");
+import("Observation_lib");
+
+result.string(Observation.cancelActionTitle(vars.get("$sys.selection")));
\ No newline at end of file
diff --git a/entity/BulkMail_entity/entityfields/observeactionogroup/children/observe/onActionProcess.js b/entity/BulkMail_entity/entityfields/observeactionogroup/children/observe/onActionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..66cf7bc2991c142ee0753fec88e151d3dcf71141
--- /dev/null
+++ b/entity/BulkMail_entity/entityfields/observeactionogroup/children/observe/onActionProcess.js
@@ -0,0 +1,3 @@
+import("Observation_lib");
+
+Observation.insertAction();
\ No newline at end of file
diff --git a/entity/BulkMail_entity/entityfields/observeactionogroup/children/observe/stateProcess.js b/entity/BulkMail_entity/entityfields/observeactionogroup/children/observe/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..84fd36a56b2c734b33329288dd586315fa8bab70
--- /dev/null
+++ b/entity/BulkMail_entity/entityfields/observeactionogroup/children/observe/stateProcess.js
@@ -0,0 +1,5 @@
+import("system.vars");
+import("system.result");
+import("Observation_lib");
+
+result.string(Observation.actionState(vars.get("$sys.selection")));
\ No newline at end of file
diff --git a/entity/BulkMail_entity/entityfields/observeactionogroup/children/observe/titleProcess.js b/entity/BulkMail_entity/entityfields/observeactionogroup/children/observe/titleProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..abdfbd3d7c4aff7beba9ff22cbb39abc8d195a30
--- /dev/null
+++ b/entity/BulkMail_entity/entityfields/observeactionogroup/children/observe/titleProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Observation_lib");
+import("system.vars");
+
+result.string(Observation.observeActionTitle(vars.get("$sys.selection")));
\ No newline at end of file
diff --git a/entity/BulkMail_entity/entityfields/sendmail/onActionProcess.js b/entity/BulkMail_entity/entityfields/sendmail/onActionProcess.js
index d44bc14c4c0ff814d780898765302a5833684060..117715d5165999bbec2433283cc607de02fe2f6a 100644
--- a/entity/BulkMail_entity/entityfields/sendmail/onActionProcess.js
+++ b/entity/BulkMail_entity/entityfields/sendmail/onActionProcess.js
@@ -10,8 +10,12 @@ import("KeywordRegistry_basic");
 var send = question.askYesNo(translate.text("Bulk mail"), translate.text("Should the mail be sent now?"), false);
 if (send)
 {
+    //UPDATE BULKMAIL STATUS
     newWhere("BULKMAIL.BULKMAILID", "$field.BULKMAILID")
         .updateFields({"STATUS" : $KeywordRegistry.bulkMailStatus$beingSent()});
+    //UPDATE RECIPIENT STATUS
+    newWhere("BULKMAILRECIPIENT.BULKMAIL_ID", "$field.BULKMAILID")
+        .updateFields({"STATUS" : $KeywordRegistry.bulkMailRecipientStatus$pending()});
     
     neon.refreshAll();
     BulkMailUtils.sendBulkMailOnServer(vars.get("$field.BULKMAILID"));
diff --git a/entity/CampaignStep_entity/CampaignStep_entity.aod b/entity/CampaignStep_entity/CampaignStep_entity.aod
index 98f8c9ab6be8c4a0fb9717db8b329df74f40a675..80eba01b15c052c1dea96ec81668ab55688d08db 100644
--- a/entity/CampaignStep_entity/CampaignStep_entity.aod
+++ b/entity/CampaignStep_entity/CampaignStep_entity.aod
@@ -384,16 +384,21 @@
       <children>
         <entityActionField>
           <name>moveUp</name>
+          <title>Move up</title>
           <onActionProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/group/children/moveup/onActionProcess.js</onActionProcess>
           <iconId>VAADIN:ARROW_UP</iconId>
           <state>DISABLED</state>
           <stateProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/group/children/moveup/stateProcess.js</stateProcess>
+          <tooltipProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/group/children/moveup/tooltipProcess.js</tooltipProcess>
         </entityActionField>
         <entityActionField>
           <name>moveDown</name>
+          <title>Move down</title>
+          <description></description>
           <onActionProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/group/children/movedown/onActionProcess.js</onActionProcess>
           <iconId>VAADIN:ARROW_DOWN</iconId>
           <stateProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/group/children/movedown/stateProcess.js</stateProcess>
+          <tooltipProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/group/children/movedown/tooltipProcess.js</tooltipProcess>
         </entityActionField>
       </children>
     </entityActionGroup>
diff --git a/entity/CampaignStep_entity/entityfields/group/children/movedown/tooltipProcess.js b/entity/CampaignStep_entity/entityfields/group/children/movedown/tooltipProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..ff28377208afccf394a6d638d04add08a837bcb2
--- /dev/null
+++ b/entity/CampaignStep_entity/entityfields/group/children/movedown/tooltipProcess.js
@@ -0,0 +1,4 @@
+import("system.translate");
+import("system.result");
+
+result.string(translate.text("Move selection down"));
\ No newline at end of file
diff --git a/entity/CampaignStep_entity/entityfields/group/children/moveup/tooltipProcess.js b/entity/CampaignStep_entity/entityfields/group/children/moveup/tooltipProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..83334efc4aa6db557b5af7d50c1ce8a40cf5459c
--- /dev/null
+++ b/entity/CampaignStep_entity/entityfields/group/children/moveup/tooltipProcess.js
@@ -0,0 +1,4 @@
+import("system.translate");
+import("system.result");
+
+result.string(translate.text("Move selection up"));
\ No newline at end of file
diff --git a/entity/WeblinkClick_entity/WeblinkClick_entity.aod b/entity/WeblinkClick_entity/WeblinkClick_entity.aod
index 9e8e4288f6b030b0a4743bd4f522272e8b260dc0..beecca47e340f530da27977881532eaf4ff7086a 100644
--- a/entity/WeblinkClick_entity/WeblinkClick_entity.aod
+++ b/entity/WeblinkClick_entity/WeblinkClick_entity.aod
@@ -72,7 +72,7 @@
     </entityProvider>
     <entityField>
       <name>URL</name>
-      <title>Url</title>
+      <title>URL</title>
     </entityField>
     <entityParameter>
       <name>WeblinkId_param</name>
diff --git a/entity/WeblinkTag_entity/WeblinkTag_entity.aod b/entity/WeblinkTag_entity/WeblinkTag_entity.aod
index a57d8a28815a340ccaa6cabf52def0f943332f9d..a2976f0f06ca871655c4cd54aa887f590f0fa869 100644
--- a/entity/WeblinkTag_entity/WeblinkTag_entity.aod
+++ b/entity/WeblinkTag_entity/WeblinkTag_entity.aod
@@ -32,7 +32,7 @@
     </entityField>
     <entityField>
       <name>WEBLINK_ID</name>
-      <title>Url</title>
+      <title>URL</title>
       <valueProcess>%aditoprj%/entity/WeblinkTag_entity/entityfields/weblink_id/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
diff --git a/entity/Weblink_entity/Weblink_entity.aod b/entity/Weblink_entity/Weblink_entity.aod
index 7d8d1074579c2d5f2e4b5681db38f02819e11f27..433b65f149e2ada233658fd284989a93be81660b 100644
--- a/entity/Weblink_entity/Weblink_entity.aod
+++ b/entity/Weblink_entity/Weblink_entity.aod
@@ -14,7 +14,7 @@
     </entityProvider>
     <entityField>
       <name>URL</name>
-      <title>Url</title>
+      <title>URL</title>
       <mandatory v="true" />
       <stateProcess>%aditoprj%/entity/Weblink_entity/entityfields/url/stateProcess.js</stateProcess>
       <onValidation>%aditoprj%/entity/Weblink_entity/entityfields/url/onValidation.js</onValidation>
diff --git a/entity/Weblink_entity/entityfields/url/onValidation.js b/entity/Weblink_entity/entityfields/url/onValidation.js
index 789eb86303fe57cc5de8c7bc23d243d90c03d6c4..e6206fe51d7947ef870a671ef47fb3089c8f0ce4 100644
--- a/entity/Weblink_entity/entityfields/url/onValidation.js
+++ b/entity/Weblink_entity/entityfields/url/onValidation.js
@@ -7,10 +7,10 @@ import("Sql_lib");
 if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW && vars.get("$local.value"))
 {
     if (newSelect("URL").from("WEBLINK").where("WEBLINK.URL", vars.get("$local.value")).cell())
-        result.string(translate.text("Url must be unique"));
+        result.string(translate.text("URL must be unique"));
     
     if (vars.get("$field.ISREDIRECT") == "1" && !/^(?:http(s)?:\/\/)[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$/g.test(vars.get("$local.value")))
     {
-        result.string(translate.text("Redirect needs a full Url with http/https"));
+        result.string(translate.text("Redirect needs a full URL with http/https"));
     }
 }
diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
index 5e69b9dfd946c8b9c4ec4fef63d3865501234926..ec885fdd3b05f071ec1ea9643b85eb86e49d309d 100644
--- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
+++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
@@ -8238,9 +8238,6 @@
     <entry>
       <key>Recipient filter</key>
     </entry>
-    <entry>
-      <key>Url must be unique</key>
-    </entry>
     <entry>
       <key>Volume(€)</key>
     </entry>
@@ -8409,9 +8406,6 @@
     <entry>
       <key>Invalid attribute count</key>
     </entry>
-    <entry>
-      <key>Redirect needs a full Url with http/https</key>
-    </entry>
     <entry>
       <key>${IGNORE_DUPLICATE}</key>
     </entry>
@@ -8662,9 +8656,6 @@
     <entry>
       <key>Maillogs</key>
     </entry>
-    <entry>
-      <key>Url</key>
-    </entry>
     <entry>
       <key>[TEST] Util_lib</key>
     </entry>
@@ -9098,52 +9089,28 @@
       <key>Is contact without a contract</key>
     </entry>
     <entry>
-      <key>The chosen attributes were successfully set for %0 %1</key>
-    </entry>
-    <entry>
-      <key>SerialLetter</key>
-    </entry>
-    <entry>
-      <key>Bulkmail</key>
-    </entry>
-    <entry>
-      <key>%0 recipient will be added to the serial letter.</key>
-    </entry>
-    <entry>
-      <key>The attribute \"%0\" couldn't be set for %1 %2, because %3.</key>
-    </entry>
-    <entry>
-      <key>the max amount of this attribute has been reached</key>
+      <key>Move down</key>
     </entry>
     <entry>
-      <key>set attribute (use filter result)</key>
+      <key>Move selection up</key>
     </entry>
     <entry>
-      <key>The chosen attribute was successfully set for %0 %1</key>
+      <key>BulkMail</key>
     </entry>
     <entry>
-      <key>Volume (Euro)</key>
+      <key>Move up</key>
     </entry>
     <entry>
-      <key>add Attributes</key>
+      <key>Move selection down</key>
     </entry>
     <entry>
-      <key>%0 recipient will be added to the bulk mail.</key>
+      <key>URL must be unique</key>
     </entry>
     <entry>
-      <key>Attribute \"%0\" can only be inserted once with the same value.</key>
+      <key>URL</key>
     </entry>
     <entry>
-      <key>Set attribute (use filter result)</key>
-    </entry>
-    <entry>
-      <key>set attribute (selected data)</key>
-    </entry>
-    <entry>
-      <key>affected rows:</key>
-    </entry>
-    <entry>
-      <key>this attribute with the same value exists already</key>
+      <key>Redirect needs a full URL with http/https</key>
     </entry>
     <entry>
       <key>Interest already assign to contact</key>
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index 86b8ae703f58863f040a14453cbc5c8f0e8ece72..f333233b075bd6733ad5d0eabb6088cf4b01a31f 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -26,13 +26,17 @@
       <key>Number of clicks</key>
       <value>Anzahl Klicks</value>
     </entry>
+    <entry>
+      <key>Move selection up</key>
+      <value>Auswahl nach oben verschieben</value>
+    </entry>
     <entry>
       <key>Attributes of attribute group \"%0\" have to be used at least %1.</key>
       <value>Eigenschaften der Eigenschaftsgruppe \"%0\" müssen mindestens %1 verwendet werden.</value>
     </entry>
     <entry>
-      <key>Redirect needs a full Url with http/https</key>
-      <value>Für die Weiterleitung wird eine vollständige Url mit http/https benötigt</value>
+      <key>Redirect needs a full URL with http/https</key>
+      <value>Für die Weiterleitung wird eine vollständige URL mit http/https benötigt</value>
     </entry>
     <entry>
       <key>My Bulkmails</key>
@@ -51,8 +55,8 @@
       <value>Testempfänger setzen</value>
     </entry>
     <entry>
-      <key>Url must be unique</key>
-      <value>Die Url muss eindeutig sein!</value>
+      <key>URL must be unique</key>
+      <value>Die URL muss eindeutig sein!</value>
     </entry>
     <entry>
       <key>Opening Date</key>
@@ -70,6 +74,10 @@
       <key>This setting is overridden by the setting '%0'</key>
       <value>Diese Einstellung wird durch die Einstellung '%0' überschrieben</value>
     </entry>
+    <entry>
+      <key>Move down</key>
+      <value>Nach oben verschieben</value>
+    </entry>
     <entry>
       <key>Value is too big, the maximum is %0</key>
       <value>Wert ist zu groß, das Maximum ist %0</value>
@@ -6441,6 +6449,10 @@
       <key>Loyalty</key>
       <value>Loyalität</value>
     </entry>
+    <entry>
+      <key>Move selection down</key>
+      <value>Auswahl nach unten verschieben</value>
+    </entry>
     <entry>
       <key>Data table</key>
       <value>Tabellen Daten</value>
@@ -8862,6 +8874,10 @@ Bitte Datumseingabe prüfen</value>
       <key>Export columns using a exporttemplate</key>
       <value>Exportiere Spalten mithilfe einer Exportvorlage</value>
     </entry>
+    <entry>
+      <key>Move up</key>
+      <value>Nach unten verschieben</value>
+    </entry>
     <entry>
       <key>Permission procurer</key>
       <value>Rechteempfänger</value>
@@ -11585,7 +11601,8 @@ Bitte Datumseingabe prüfen</value>
       <key>Maillogs</key>
     </entry>
     <entry>
-      <key>Url</key>
+      <key>URL</key>
+      <value></value>
     </entry>
     <entry>
       <key>[TEST] Util_lib</key>
@@ -11914,6 +11931,9 @@ Bitte Datumseingabe prüfen</value>
       <key>Is contact without a contract</key>
       <value>Ist ein Kontakt ohne Vertrag</value>
     </entry>
+    <entry>
+      <key>Bulkmail</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
index a080e0a82c12b58df5587998e5af5b41a78457c6..14283d7447aa326ef499039594692528249293ef 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -8319,9 +8319,6 @@
     <entry>
       <key>Recipient filter</key>
     </entry>
-    <entry>
-      <key>Url must be unique</key>
-    </entry>
     <entry>
       <key>Volume(€)</key>
     </entry>
@@ -8493,9 +8490,6 @@
     <entry>
       <key>Invalid attribute count</key>
     </entry>
-    <entry>
-      <key>Redirect needs a full Url with http/https</key>
-    </entry>
     <entry>
       <key>${IGNORE_DUPLICATE}</key>
       <value>Record is not a duplicate</value>
@@ -8753,9 +8747,6 @@
     <entry>
       <key>Maillogs</key>
     </entry>
-    <entry>
-      <key>Url</key>
-    </entry>
     <entry>
       <key>[TEST] Util_lib</key>
     </entry>
@@ -9188,6 +9179,30 @@
     <entry>
       <key>Is contact without a contract</key>
     </entry>
+    <entry>
+      <key>Move down</key>
+    </entry>
+    <entry>
+      <key>Move selection up</key>
+    </entry>
+    <entry>
+      <key>BulkMail</key>
+    </entry>
+    <entry>
+      <key>Move up</key>
+    </entry>
+    <entry>
+      <key>Move selection down</key>
+    </entry>
+    <entry>
+      <key>URL must be unique</key>
+    </entry>
+    <entry>
+      <key>URL</key>
+    </entry>
+    <entry>
+      <key>Redirect needs a full URL with http/https</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/process/KeywordRegistry_basic/process.js b/process/KeywordRegistry_basic/process.js
index 86bfc662594e207c5911ec0f786cde055b67d34d..b71e5b84d7764486f2aec05ae336f0406d6219ae 100644
--- a/process/KeywordRegistry_basic/process.js
+++ b/process/KeywordRegistry_basic/process.js
@@ -239,6 +239,7 @@ $KeywordRegistry.bulkMailRecipientStatus$sent = function(){return "EMAILSENT";};
 $KeywordRegistry.bulkMailRecipientStatus$failed = function(){return "EMAILFAILED";};
 $KeywordRegistry.bulkMailRecipientStatus$softBounce = function(){return "EMAILBOUNCED_SOFT";};
 $KeywordRegistry.bulkMailRecipientStatus$hardBounce = function(){return "EMAILBOUNCED_HARD";};
+$KeywordRegistry.bulkMailRecipientStatus$added = function(){return "EMAILADDED";};
 
 $KeywordRegistry.bulkMailStatus = function(){return "BulkMailStatus";};
 $KeywordRegistry.bulkMailStatus$notSent = function(){return "BULKMAILNOTSENT";};
diff --git a/process/Observation_lib/process.js b/process/Observation_lib/process.js
index 469abca0373127e603834146ed8d4cd61b7b2f04..9c04c665fae89eee61410456eda4e3d03c299624 100644
--- a/process/Observation_lib/process.js
+++ b/process/Observation_lib/process.js
@@ -64,6 +64,7 @@ Observation.RECORDS_SPECIFIC_VALUES = function ()
 Observation.OBSERVABLE_ENTITIES = function () {
     return [
     "Activity_entity",
+    "BulkMail_entity",
     "Campaign_entity",
     "Contract_entity",
     "Employee_entity",