diff --git a/.liquibase/Data_alias/basic/2020.1.1/Notification/changelog.xml b/.liquibase/Data_alias/basic/2020.1.1/Notification/changelog.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1c9de620455f1a0e782540d3ca7e86c1181d8dbb
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2020.1.1/Notification/changelog.xml
@@ -0,0 +1,6 @@
+<?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="init_NotificationType.xml"/>
+                   <include relativeToChangelogFile="true" file="insert_NotificationState.xml"/>
+</databaseChangeLog>
diff --git a/.liquibase/Data_alias/basic/2020.1.1/Notification/init_NotificationType.xml b/.liquibase/Data_alias/basic/2020.1.1/Notification/init_NotificationType.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3d8f901c79b2216826873ea4664e1f1a401652fc
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2020.1.1/Notification/init_NotificationType.xml
@@ -0,0 +1,85 @@
+<?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="s.pongratz" id="b2894de0-4a19-4fcb-9412-0a5e91bfec80">
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="f862f71e-9155-4e88-8158-170ddfa4dbf3"/>
+            <column name="KEYID" value="_____SYSTEM_NOTIFICATION_PHONECALL"/>
+            <column name="TITLE" value="Phonecall"/>
+            <column name="CONTAINER" value="NotificationType"/>
+            <column name="SORTING" valueNumeric="0"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="1"/>
+        </insert>
+        
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="19876b72-cd7d-4916-b853-22c4d9fe49c2"/>
+            <column name="KEYID" value="_____SYSTEM_NOTIFICATION_EMAIL"/>
+            <column name="TITLE" value="Email"/>
+            <column name="CONTAINER" value="NotificationType"/>
+            <column name="SORTING" valueNumeric="1"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="1"/>
+        </insert>
+        
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="16f9fbb5-9b8a-4908-babd-06c86032a22b"/>
+            <column name="KEYID" value="_____SYSTEM_NOTIFICATION_APPOINTMENT"/>
+            <column name="TITLE" value="Appointment"/>
+            <column name="CONTAINER" value="NotificationType"/>
+            <column name="SORTING" valueNumeric="2"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="1"/>
+        </insert>
+        
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="53458dba-80f5-427c-a44c-3fc8e74f3380"/>
+            <column name="KEYID" value="_____SYSTEM_NOTIFICATION_TODO"/>
+            <column name="TITLE" value="ToDo"/>
+            <column name="CONTAINER" value="NotificationType"/>
+            <column name="SORTING" valueNumeric="3"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="1"/>
+        </insert>
+        
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="3d2393b3-ed13-44d6-9a6f-9280d84252cb"/>
+            <column name="KEYID" value="DownloadReady"/>
+            <column name="TITLE" value="download ready"/>
+            <column name="CONTAINER" value="NotificationType"/>
+            <column name="SORTING" valueNumeric="4"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="1"/>
+        </insert>
+        
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="09ce4611-3254-4590-958a-79178924188b"/>
+            <column name="KEYID" value="BulkMailSent"/>
+            <column name="TITLE" value="bulk mail sent"/>
+            <column name="CONTAINER" value="NotificationType"/>
+            <column name="SORTING" valueNumeric="5"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="1"/>
+        </insert>
+        
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="df47c6db-2a72-464a-b155-c4e33a4294ba"/>
+            <column name="KEYID" value="Leadimport_Notification"/>
+            <column name="TITLE" value="leadimport notification"/>
+            <column name="CONTAINER" value="NotificationType"/>
+            <column name="SORTING" valueNumeric="6"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="1"/>
+        </insert>
+        
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="58281d88-71a7-4fa7-8ef8-9289fc904697"/>
+            <column name="KEYID" value="WorkflowNotification"/>
+            <column name="TITLE" value="workflow notification"/>
+            <column name="CONTAINER" value="NotificationType"/>
+            <column name="SORTING" valueNumeric="7"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="1"/>
+        </insert>
+    </changeSet>
+</databaseChangeLog>
diff --git a/.liquibase/Data_alias/basic/2020.1.1/Notification/insert_NotificationState.xml b/.liquibase/Data_alias/basic/2020.1.1/Notification/insert_NotificationState.xml
new file mode 100644
index 0000000000000000000000000000000000000000..35501bf1692b76aa533e32e47930c612f0d97ef2
--- /dev/null
+++ b/.liquibase/Data_alias/basic/2020.1.1/Notification/insert_NotificationState.xml
@@ -0,0 +1,15 @@
+<?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="s.pongratz" id="b2894de0-4a19-4fcb-9412-0a5e91bfec80">
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="daa6d8d8-fdc6-4fb2-9677-9ccc1f8a9b81"/>
+            <column name="KEYID" value="TODELETE"/>
+            <column name="TITLE" value="TODELETE"/>
+            <column name="CONTAINER" value="NotificationState"/>
+            <column name="SORTING" valueNumeric="4"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="1"/>
+        </insert>
+    </changeSet>
+</databaseChangeLog>
diff --git a/.liquibase/Data_alias/basic/2020.1.1/changelog.xml b/.liquibase/Data_alias/basic/2020.1.1/changelog.xml
index f5686ce22ccea6e17c577957774efd2009a0dd7f..7070cb88cfdc67dbb126680500fad85499f40887 100644
--- a/.liquibase/Data_alias/basic/2020.1.1/changelog.xml
+++ b/.liquibase/Data_alias/basic/2020.1.1/changelog.xml
@@ -2,4 +2,5 @@
 <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="AlterTablesToDatetime.xml"/>
+    <include relativeToChangelogFile="true" file="Notification/changelog.xml"/>
 </databaseChangeLog>
diff --git a/.liquibase/Data_alias/basic/2020.1.2/AlterDatatypeOfKeyColumnsToChar/alter_DocumentTemplatePlaceOfUseDatatype.xml b/.liquibase/Data_alias/basic/2020.1.2/AlterDatatypeOfKeyColumnsToChar/alter_DocumentTemplatePlaceOfUseDatatype.xml
index ec607aa9383d71b3ad3c4d1bd8b785c16d489981..2cfda5e78c75dc24d61318c4867d381d01e4105d 100644
--- a/.liquibase/Data_alias/basic/2020.1.2/AlterDatatypeOfKeyColumnsToChar/alter_DocumentTemplatePlaceOfUseDatatype.xml
+++ b/.liquibase/Data_alias/basic/2020.1.2/AlterDatatypeOfKeyColumnsToChar/alter_DocumentTemplatePlaceOfUseDatatype.xml
@@ -2,11 +2,14 @@
 <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 dbms="derby" author="b.ulrich" id="83c25119-cf41-42ab-b42f-370195f9de87">
+        <!--not null must be set in derby before adding a primary key constraint-->
         <sql>
             ALTER TABLE DOCUMENTTEMPLATE ADD COLUMN DOCUMENTTEMPLATEID_NEW CHAR(36);
             UPDATE DOCUMENTTEMPLATE SET DOCUMENTTEMPLATEID_NEW=DOCUMENTTEMPLATEID;
             ALTER TABLE DOCUMENTTEMPLATE DROP COLUMN DOCUMENTTEMPLATEID;
             RENAME COLUMN DOCUMENTTEMPLATE.DOCUMENTTEMPLATEID_NEW TO DOCUMENTTEMPLATEID;
+            ALTER TABLE DOCUMENTTEMPLATE ALTER COLUMN DOCUMENTTEMPLATEID NOT NULL;
+            ALTER TABLE DOCUMENTTEMPLATE ADD CONSTRAINT PK_DOCUMENTTEMPLATE_DOCUMENTTEMPLATEID  PRIMARY KEY (DOCUMENTTEMPLATEID);
         </sql>
     </changeSet>
     
diff --git a/entity/KeywordEntry_entity/KeywordEntry_entity.aod b/entity/KeywordEntry_entity/KeywordEntry_entity.aod
index 2d0edd64d5ba7e6d9b3e6463f32144b574509094..33635f575600381c7558ab9a11193459f32ac1cb 100644
--- a/entity/KeywordEntry_entity/KeywordEntry_entity.aod
+++ b/entity/KeywordEntry_entity/KeywordEntry_entity.aod
@@ -583,6 +583,12 @@
           <fieldName>CategoryKeyword</fieldName>
           <isConsumer v="false" />
         </entityDependency>
+        <entityDependency>
+          <name>644a6101-6b11-4998-bd8d-b799c6f376fa</name>
+          <entityName>Notification_entity</entityName>
+          <fieldName>TypeKeywords</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
       </dependencies>
       <children>
         <entityParameter>
diff --git a/entity/Notification_entity/Notification_entity.aod b/entity/Notification_entity/Notification_entity.aod
index a3dad29fd35c166e1bed11548b79bff253145df2..4f16a89da7767a6d09cc9d00bb1c4164673a03c3 100644
--- a/entity/Notification_entity/Notification_entity.aod
+++ b/entity/Notification_entity/Notification_entity.aod
@@ -68,6 +68,7 @@
     <entityField>
       <name>TYPECODE</name>
       <title>Type</title>
+      <consumer>TypeKeywords</consumer>
       <groupable v="true" />
       <displayValueProcess>%aditoprj%/entity/Notification_entity/entityfields/typecode/displayValueProcess.js</displayValueProcess>
     </entityField>
@@ -103,7 +104,7 @@
           <title>set Read</title>
           <description></description>
           <onActionProcess>%aditoprj%/entity/Notification_entity/entityfields/setnotificationstate/children/setread/onActionProcess.js</onActionProcess>
-          <isSelectionAction v="true" />
+          <isSelectionAction v="false" />
           <iconId>VAADIN:OPEN_BOOK</iconId>
           <tooltip></tooltip>
           <tooltipProcess>%aditoprj%/entity/Notification_entity/entityfields/setnotificationstate/children/setread/tooltipProcess.js</tooltipProcess>
@@ -158,6 +159,20 @@
         </entityParameter>
       </children>
     </entityConsumer>
+    <entityConsumer>
+      <name>TypeKeywords</name>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Notification_entity/entityfields/typekeywords/children/containername_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
diff --git a/entity/Notification_entity/entityfields/setnotificationstate/children/setread/onActionProcess.js b/entity/Notification_entity/entityfields/setnotificationstate/children/setread/onActionProcess.js
index 5ee955fd6389e03589d671d10bb0f51aa70a8bb2..d9ff8a7c8fcb193f4d0e526aaa0c517caa3b48b2 100644
--- a/entity/Notification_entity/entityfields/setnotificationstate/children/setread/onActionProcess.js
+++ b/entity/Notification_entity/entityfields/setnotificationstate/children/setread/onActionProcess.js
@@ -1,11 +1,20 @@
+import("Sql_lib");
 import("system.vars");
 import("system.tools");
 import("system.notification");
 import("system.neon");
+import("KeywordRegistry_basic");
 
 var user = tools.getCurrentUser();
 var selectedNotifications = vars.get("$sys.selection");
 
+if (selectedNotifications.length == 0){
+    selectedNotifications = newSelect("ASYS_NOTIFICATIONS.ID")
+    .from("ASYS_NOTIFICATIONS")
+    .where("ASYS_NOTIFICATIONS.STATE", [notification.STATE_SEEN.toString(), notification.STATE_UNSEEN.toString()], SqlBuilder.IN())
+    .arrayColumn();
+}
+
 for(var i = 0; i < selectedNotifications.length; i++)
     notification.updateUserNotificationState(user["name"], selectedNotifications[i], notification.STATE_CONFIRMED);
 
diff --git a/entity/Notification_entity/entityfields/state/displayValueProcess.js b/entity/Notification_entity/entityfields/state/displayValueProcess.js
index fcd088324b80387634096e3d62a49a2e82974495..277c05aab18dbce9a8a0a5f7bc078c8ada84c94d 100644
--- a/entity/Notification_entity/entityfields/state/displayValueProcess.js
+++ b/entity/Notification_entity/entityfields/state/displayValueProcess.js
@@ -1,24 +1,6 @@
-import("system.translate");
+import("Keyword_lib");
 import("system.result");
 import("system.vars");
+import("KeywordRegistry_basic");
 
-var value = vars.get("$field.STATE");
-
-switch(value)
-{
-    case "SEEN":
-        result.string(translate.text("Seen"));
-        break;
-    case "CONFIRMED":
-        result.string(translate.text("Confirmed"));
-        break;
-    case "TODELETE":
-        result.string(translate.text("To Delete"));
-        break;
-    case "ARCHIVE":
-        result.string(translate.text("Archive"));
-        break;
-    default:
-        result.string(translate.text("Unseen"));
-        break;
-}
\ No newline at end of file
+result.string(KeywordUtils.getViewValue($KeywordRegistry.notificationState(), vars.get("$field.STATE")));
\ No newline at end of file
diff --git a/entity/Notification_entity/entityfields/statekeywords/children/containername_param/valueProcess.js b/entity/Notification_entity/entityfields/statekeywords/children/containername_param/valueProcess.js
index a5407effb79841e7d2492e6f27f3ce81bfa33a51..f39ea4075a7d01b5ebcd3b54a316ce20694c3e79 100644
--- a/entity/Notification_entity/entityfields/statekeywords/children/containername_param/valueProcess.js
+++ b/entity/Notification_entity/entityfields/statekeywords/children/containername_param/valueProcess.js
@@ -1,4 +1,5 @@
 import("system.result");
+import("KeywordRegistry_basic");
 
 
-result.string("NotificationState");
\ No newline at end of file
+result.string($KeywordRegistry.notificationState());
\ No newline at end of file
diff --git a/entity/Notification_entity/entityfields/typecode/displayValueProcess.js b/entity/Notification_entity/entityfields/typecode/displayValueProcess.js
index 76e8d769dc2a82a791668c8df8783f1bfee95141..fcf893072cda6e8d5248ec3392af95b9c2feb13c 100644
--- a/entity/Notification_entity/entityfields/typecode/displayValueProcess.js
+++ b/entity/Notification_entity/entityfields/typecode/displayValueProcess.js
@@ -1,28 +1,6 @@
+import("Keyword_lib");
 import("system.result");
-import("system.translate");
 import("system.vars");
+import("KeywordRegistry_basic");
 
-var PREFIX = "_____SYSTEM_";
-var typecode = vars.get("$field.TYPECODE");
-
-switch(typecode)
-{
-    case PREFIX + "NOTIFICATION_PHONECALL":
-        result.string(translate.text("Phonecall"));
-        break;
-        
-    case PREFIX + "NOTIFICATION_EMAIL":
-        result.string(translate.text("Email"));
-        break;
-        
-    case PREFIX + "NOTIFICATION_APPOINTMENT":
-        result.string(translate.text("Appointment"));
-        break;
-        
-    case PREFIX + "NOTIFICATION_TODO":
-        result.string(translate.text("Todo"));
-        break;
-        
-    default: 
-        result.string(typecode);
-}
\ No newline at end of file
+result.string(KeywordUtils.getViewValue($KeywordRegistry.notificationType(), vars.get("$field.TYPECODE")));
\ No newline at end of file
diff --git a/entity/Notification_entity/entityfields/typekeywords/children/containername_param/valueProcess.js b/entity/Notification_entity/entityfields/typekeywords/children/containername_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..8ccc4158b03124fe0be85ad1ffaeeca86efb0fb2
--- /dev/null
+++ b/entity/Notification_entity/entityfields/typekeywords/children/containername_param/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("KeywordRegistry_basic");
+
+
+result.string($KeywordRegistry.notificationType());
\ No newline at end of file
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index 765e47418cccdc43de6aa424ea0d999edeb41fcf..a132152c5028d6e84f533b84d53bb64e431762fa 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -8187,7 +8187,6 @@ Bitte Datumseingabe prüfen</value>
     </entry>
     <entry>
       <key>Send email</key>
-      <value>E-Mail losschicken</value>
     </entry>
     <entry>
       <key>Activites</key>
@@ -8583,7 +8582,6 @@ Bitte Datumseingabe prüfen</value>
     </entry>
     <entry>
       <key>Zip</key>
-      <value>PLZ</value>
     </entry>
     <entry>
       <key>type</key>
@@ -8740,63 +8738,68 @@ Bitte Datumseingabe prüfen</value>
       <value>gültig ab (in </value>
     </entry>
     <entry>
-      <key>No new recipients found that can be added to the bulk mail.</key>
-      <value>Keine neuen Empfänger, die zur Serienmail hinzugefügt werden können, gefunden.</value>
+      <key>workflow notification</key>
+      <value>Workflow Benachrichtigung</value>
     </entry>
     <entry>
-      <key>Add Recipients</key>
-      <value>Empfänger hinzufügen</value>
+      <key>leadimport notification</key>
+      <value>Leadimport Benachrichtigung</value>
     </entry>
     <entry>
-      <key>Add Participants</key>
-      <value>Teilnehmer hinzufügen</value>
+      <key>bulk mail sent</key>
+      <value>Serienmail versendet</value>
     </entry>
     <entry>
-      <key>Download letter and create Activity</key>
-      <value>Brief herunterladen und Aktivität erstellen</value>
+      <key>download ready</key>
+      <value>Download bereit</value>
     </entry>
     <entry>
-      <key>and open Report</key>
-      <value>und Report öffnen</value>
+      <key>No new recipients found that can be added to the bulk mail.</key>
+      <value>Keine neuen Empfänger, die zur Serienmail hinzugefügt werden können, gefunden.</value>
     </entry>
     <entry>
-      <key>export</key>
+      <key>Permission received</key>
+      <value>erhaltene Berechtigung</value>
     </entry>
     <entry>
-      <key>export using the selected  template</key>
-      <value>Mit der ausgewählten Vorlage Exportieren</value>
+      <key>leadimport notification</key>
     </entry>
     <entry>
-      <key>No new recipients found that can be added to the serial letter.</key>
-      <value>Keine neuen Empfänger, die zum  Serienbrief werden können, gefunden.</value>
+      <key>granted permission</key>
+      <value>vergebene Berechtigung</value>
     </entry>
     <entry>
-      <key>send mail</key>
-      <value>E-Mail losschicken</value>
+      <key>bulk mail sent</key>
     </entry>
     <entry>
-      <key>Receive new Department Permission</key>
+      <key>download ready</key>
     </entry>
     <entry>
-      <key>Receive new User Permission</key>
+      <key>Receive new Department Permission</key>
+      <value>Neue Abteilungs-Berechtigung erhalten</value>
     </entry>
     <entry>
-      <key>workflow notification</key>
+      <key>Receive new User Permission</key>
+      <value>Neue Benutzer-Berechtigung erhalten</value>
     </entry>
     <entry>
-      <key>Permission received</key>
+      <key>export</key>
     </entry>
     <entry>
-      <key>leadimport notification</key>
+      <key>No new recipients found that can be added to the serial letter.</key>
+      <value>Keine neuen Empfänger, die zum  Serienbrief werden können, gefunden.</value>
     </entry>
     <entry>
-      <key>granted permission</key>
+      <key>No new recipients found that can be added to the bulk mail.</key>
+      <value>Keine neuen Empfänger, die zur Serienmail hinzugefügt werden können, gefunden.</value>
     </entry>
     <entry>
-      <key>bulk mail sent</key>
+      <key>export using the selected  template</key>
+      <value>Mit der ausgewählten Vorlage Exportieren</value>
     </entry>
     <entry>
-      <key>download ready</key>
+      <key>send mail</key>
+      <value>E-Mail losschicken</value>
     </entry>
     <entry>
       <key>Total in euros</key>
diff --git a/neonContext/CampaignStep/CampaignStep.aod b/neonContext/CampaignStep/CampaignStep.aod
index 99969c1dc8f63c8de66e18866f2b7eae6560f02e..6e9810b632fff5969a2b21be2d6dc11816966bb8 100644
--- a/neonContext/CampaignStep/CampaignStep.aod
+++ b/neonContext/CampaignStep/CampaignStep.aod
@@ -45,9 +45,5 @@
       <name>99367402-93e6-49d4-b60c-143b6e71df00</name>
       <view>CampaignStepsGantt_view</view>
     </neonViewReference>
-    <neonViewReference>
-      <name>f146ea29-77d2-4141-b04a-36c29594e670</name>
-      <view>CampaignStepMembers_view</view>
-    </neonViewReference>
   </references>
 </neonContext>
diff --git a/neonView/CampaignStepMembers_view/CampaignStepMembers_view.aod b/neonView/CampaignStepMembers_view/CampaignStepMembers_view.aod
deleted file mode 100644
index f66c1629d8103d1a135369cb9f519652a2750500..0000000000000000000000000000000000000000
--- a/neonView/CampaignStepMembers_view/CampaignStepMembers_view.aod
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6">
-  <name>CampaignStepMembers_view</name>
-  <majorModelMode>DISTRIBUTED</majorModelMode>
-</neonView>
diff --git a/neonView/NotificationFilter_view/NotificationFilter_view.aod b/neonView/NotificationFilter_view/NotificationFilter_view.aod
index bb14afb0a269a9c52da65d1333fc78f34be935ee..65c5f94e79b7ca64bc3b52f30166c941c25d7ae7 100644
--- a/neonView/NotificationFilter_view/NotificationFilter_view.aod
+++ b/neonView/NotificationFilter_view/NotificationFilter_view.aod
@@ -28,17 +28,18 @@
   <children>
     <timelineViewTemplate>
       <name>NotificationTimeline</name>
+      <favoriteActionGroup1>setNotificationState</favoriteActionGroup1>
       <dateField>CREATIONDATE</dateField>
       <titleField>CAPTION</titleField>
       <descriptionField>DESCRIPTION</descriptionField>
       <iconIdField>ICON</iconIdField>
       <entityField>#ENTITY</entityField>
+      <isEditable v="false" />
     </timelineViewTemplate>
     <tableViewTemplate>
       <name>NotificationTable</name>
       <favoriteActionGroup1>setNotificationState</favoriteActionGroup1>
       <inlineEdit v="true" />
-      <entryAction>rowClickAction</entryAction>
       <iconField>ICON</iconField>
       <titleField>CAPTION</titleField>
       <subtitleField>RESOLVEDPRIORITY</subtitleField>
@@ -71,7 +72,9 @@
     </tableViewTemplate>
     <treeTableViewTemplate>
       <name>NotificationTreeTable</name>
+      <favoriteActionGroup1>setNotificationState</favoriteActionGroup1>
       <entityField>#ENTITY</entityField>
+      <isEditable v="false" />
       <columns>
         <neonTreeTableColumn>
           <name>c8799a54-569a-4667-9bdd-aa11a2f6e21e</name>
diff --git a/process/KeywordData_lib/process.js b/process/KeywordData_lib/process.js
index 9997efa52934025c8d61e7cd6eb8414737af9fe8..a4fbd6bd4e44b0b1068e110f60e27107bceb47ee 100644
--- a/process/KeywordData_lib/process.js
+++ b/process/KeywordData_lib/process.js
@@ -20,7 +20,7 @@ KeywordData.getSimpleData = function (pKeywordContainer, pLocale, pOnlyActives)
     var identifier = "KeywordSimpleData_" + pKeywordContainer + flags;
     var cache = new CachedData(identifier, true, pLocale);
     return cache.load(function (pTranslationNecessary, pLocale){
-        var keywordEntrySelect = newSelect("AB_KEYWORD_ENTRY.KEYID, AB_KEYWORD_ENTRY.TITLE")
+        var keywordEntrySelect = newSelect("AB_KEYWORD_ENTRY.KEYID, AB_KEYWORD_ENTRY.TITLE", "Data_alias")
                                     .from("AB_KEYWORD_ENTRY")
                                     .orderBy("AB_KEYWORD_ENTRY.SORTING asc, AB_KEYWORD_ENTRY.TITLE asc")
                                     .where("AB_KEYWORD_ENTRY.CONTAINER", pKeywordContainer);
diff --git a/process/KeywordRegistry_basic/process.js b/process/KeywordRegistry_basic/process.js
index 2ae7c40b6e90dc3d207d4441cbeb3abeadfd128c..b4d74a2a8f0cb51a439f5c8991d3d1e54a77602b 100644
--- a/process/KeywordRegistry_basic/process.js
+++ b/process/KeywordRegistry_basic/process.js
@@ -286,4 +286,7 @@ $KeywordRegistry.visitRecommendationPrioSource = function(){return $KeywordRegis
 $KeywordRegistry.visitRecommendationPrioSource$visitFrequency = function(){return $KeywordRegistry._autoPad("VISITFREQUENCY");};
 $KeywordRegistry.visitRecommendationPrioSource$manual = function(){return $KeywordRegistry._autoPad("MANUAL");};
 
-$KeywordRegistry.workflowCategory = function(){return "WorkflowCategory";};
\ No newline at end of file
+$KeywordRegistry.workflowCategory = function(){return "WorkflowCategory";};
+
+$KeywordRegistry.notificationState = function () { return "NotificationState";};
+$KeywordRegistry.notificationType = function () { return "NotificationType";};
diff --git a/process/ctiServerEvents/process.js b/process/ctiServerEvents/process.js
index ecb4f7e36158f19b8473870b9b5c2f280934b8dd..e0df2b323d8dc904b125b3c44fc12db5a50a5fe2 100644
--- a/process/ctiServerEvents/process.js
+++ b/process/ctiServerEvents/process.js
@@ -62,6 +62,8 @@ var ringingHandlerFn = function()
                 var affectedContext = this.contactsCall[0].PERSON_ID.trim() == "" ? "Organisation" : "Person";
                 notificationConfig.linkInfo(text.encodeMS([affectedContext, affectedContactId]));
             }
+            
+            notificationConfig.initialState(notification.STATE_CONFIRMED);
 
             
             notification.addNotificationWith(notificationConfig);