diff --git a/aliasDefinition/Data_alias/Data_alias.aod b/aliasDefinition/Data_alias/Data_alias.aod
index e6ef13f24f2c25702595e232e5b4ae175347e937..87ddc6090f433510e27a7364e513d1f24c69346c 100644
--- a/aliasDefinition/Data_alias/Data_alias.aod
+++ b/aliasDefinition/Data_alias/Data_alias.aod
@@ -5378,6 +5378,20 @@
                 <title></title>
                 <description></description>
               </entityFieldDb>
+              <entityFieldDb>
+                <name>STATE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
             </entityFields>
           </entityDb>
           <entityDb>
diff --git a/entity/CampaignStep_entity/CampaignStep_entity.aod b/entity/CampaignStep_entity/CampaignStep_entity.aod
index 8a97d786370d05ca32f97e362b2776406056cce6..fc0baed9967e4dab5bc402586fa165d7a57f681b 100644
--- a/entity/CampaignStep_entity/CampaignStep_entity.aod
+++ b/entity/CampaignStep_entity/CampaignStep_entity.aod
@@ -44,7 +44,9 @@
     <entityField>
       <name>STATE</name>
       <title>Status</title>
+      <consumer>KeywordStates</consumer>
       <mandatory v="true" />
+      <displayValueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/state/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
       <name>SORTING</name>
@@ -114,6 +116,21 @@
         </entityParameter>
       </children>
     </entityConsumer>
+    <entityConsumer>
+      <name>KeywordStates</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/keywordstates/children/containername_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -179,6 +196,10 @@
           <name>CAMPAIGNSTEP_ID.value</name>
           <recordfield>CAMPAIGNSTEP.CAMPAIGNSTEPID</recordfield>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>STATE.displayValue</name>
+          <expression>%aditoprj%/entity/CampaignStep_entity/recordcontainers/db/recordfieldmappings/state.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/CampaignStep_entity/entityfields/keywordstates/children/containername_param/valueProcess.js b/entity/CampaignStep_entity/entityfields/keywordstates/children/containername_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..ebd6eccbcbcd1f6e73a292b82a107c78f8b91325
--- /dev/null
+++ b/entity/CampaignStep_entity/entityfields/keywordstates/children/containername_param/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.campaignStepState());
\ No newline at end of file
diff --git a/entity/CampaignStep_entity/entityfields/state/displayValueProcess.js b/entity/CampaignStep_entity/entityfields/state/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..eda9e4ac40f21a62ec1025510c6dcbcfe91877d0
--- /dev/null
+++ b/entity/CampaignStep_entity/entityfields/state/displayValueProcess.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("system.vars");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string(KeywordUtils.getViewValue($KeywordRegistry.campaignStepState(), vars.get("$field.STATE")));
\ No newline at end of file
diff --git a/entity/CampaignStep_entity/recordcontainers/db/recordfieldmappings/state.displayvalue/expression.js b/entity/CampaignStep_entity/recordcontainers/db/recordfieldmappings/state.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..8b0d07b793542a03718b3ba98c1afd793aa5a345
--- /dev/null
+++ b/entity/CampaignStep_entity/recordcontainers/db/recordfieldmappings/state.displayvalue/expression.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.campaignStepState(), "CAMPAIGNSTEP.STATE");
+result.string(sql);
\ No newline at end of file
diff --git a/entity/Campaign_entity/Campaign_entity.aod b/entity/Campaign_entity/Campaign_entity.aod
index 22a3d410de701e73cc1c6d496a074e3cde500fd6..fadf8817148a528e4abcdbda429042b978b7cc4d 100644
--- a/entity/Campaign_entity/Campaign_entity.aod
+++ b/entity/Campaign_entity/Campaign_entity.aod
@@ -24,6 +24,7 @@
       <contentType>DATE</contentType>
       <resolution>DAY</resolution>
       <outputFormat>dd.MM.YYYY</outputFormat>
+      <state>READONLY</state>
       <displayValueProcess>%aditoprj%/entity/Campaign_entity/entityfields/date_start/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
@@ -31,6 +32,7 @@
       <title>Ende</title>
       <contentType>DATE</contentType>
       <resolution>DAY</resolution>
+      <state>READONLY</state>
       <displayValueProcess>%aditoprj%/entity/Campaign_entity/entityfields/date_end/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
@@ -80,6 +82,28 @@
         </entityParameter>
       </children>
     </entityConsumer>
+    <entityField>
+      <name>STATE</name>
+      <title>Status</title>
+      <consumer>KeywordStates</consumer>
+      <mandatory v="true" />
+      <displayValueProcess>%aditoprj%/entity/Campaign_entity/entityfields/state/displayValueProcess.js</displayValueProcess>
+    </entityField>
+    <entityConsumer>
+      <name>KeywordStates</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>KeywordEntry_entity</entityName>
+        <fieldName>SpecificContainerKeywords</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>ContainerName_param</name>
+          <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/keywordstates/children/containername_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
   </entityFields>
   <recordContainers>
     <dbRecordContainer>
@@ -87,10 +111,10 @@
       <alias>Data_alias</alias>
       <linkInformation>
         <linkInformation>
-          <name>10e20295-ac9e-4faf-bd30-fa560784e44e</name>
+          <name>70b9dff6-b0e5-4d3a-a13c-7f299d956115</name>
           <tableName>CAMPAIGN</tableName>
           <primaryKey>CAMPAIGNID</primaryKey>
-          <isUIDTable v="false" />
+          <isUIDTable v="true" />
           <readonly v="false" />
         </linkInformation>
       </linkInformation>
@@ -127,6 +151,14 @@
           <name>CAMPAIGN_ID.value</name>
           <recordfield>CAMPAIGN.CAMPAIGNID</recordfield>
         </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>STATE.value</name>
+          <recordfield>CAMPAIGN.STATE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>STATE.displayValue</name>
+          <expression>%aditoprj%/entity/Campaign_entity/recordcontainers/db/recordfieldmappings/state.displayvalue/expression.js</expression>
+        </dbRecordFieldMapping>
       </recordFieldMappings>
     </dbRecordContainer>
   </recordContainers>
diff --git a/entity/Campaign_entity/entityfields/employee_contact_id/valueProcess.js b/entity/Campaign_entity/entityfields/employee_contact_id/valueProcess.js
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/entity/Campaign_entity/entityfields/keywordstates/children/containername_param/valueProcess.js b/entity/Campaign_entity/entityfields/keywordstates/children/containername_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..c4b797e74cbaf5fc02fee2f06791e7bd30cda404
--- /dev/null
+++ b/entity/Campaign_entity/entityfields/keywordstates/children/containername_param/valueProcess.js
@@ -0,0 +1,5 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string($KeywordRegistry.campaignState());
\ No newline at end of file
diff --git a/entity/Campaign_entity/entityfields/state/displayValueProcess.js b/entity/Campaign_entity/entityfields/state/displayValueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..53f6f8c77cfe099cd4ca554a7b67cb0d9c904aef
--- /dev/null
+++ b/entity/Campaign_entity/entityfields/state/displayValueProcess.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("system.vars");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+result.string(KeywordUtils.getViewValue($KeywordRegistry.campaignState(), vars.get("$field.STATE")));
\ No newline at end of file
diff --git a/entity/Campaign_entity/recordcontainers/db/recordfieldmappings/state.displayvalue/expression.js b/entity/Campaign_entity/recordcontainers/db/recordfieldmappings/state.displayvalue/expression.js
new file mode 100644
index 0000000000000000000000000000000000000000..95d0ac1d4c1893934b7541d57a1f514ae3a95d7c
--- /dev/null
+++ b/entity/Campaign_entity/recordcontainers/db/recordfieldmappings/state.displayvalue/expression.js
@@ -0,0 +1,6 @@
+import("system.result");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.campaignState(), "CAMPAIGN.STATE");
+result.string(sql);
\ No newline at end of file
diff --git a/entity/KeywordEntry_entity/KeywordEntry_entity.aod b/entity/KeywordEntry_entity/KeywordEntry_entity.aod
index 4ee519d2d2fa147f18db0da1aafff43a80b73f25..4c20b161996addab74b850da340092502fe0ab46 100644
--- a/entity/KeywordEntry_entity/KeywordEntry_entity.aod
+++ b/entity/KeywordEntry_entity/KeywordEntry_entity.aod
@@ -366,6 +366,12 @@
           <fieldName>KeywordContactStates</fieldName>
           <isConsumer v="false" />
         </entityDependency>
+        <entityDependency>
+          <name>b5c39776-509e-4758-8d05-a64eac4e7f38</name>
+          <entityName>CampaignStep_entity</entityName>
+          <fieldName>KeywordStates</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
       </dependencies>
       <children>
         <entityParameter>
diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
index 79de866f228df4ad5930c3297c4b273459a7f6d4..bc8d9ae3becdd761b205365142fc771c72e3f5e7 100644
--- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
+++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
@@ -2566,10 +2566,76 @@
       <key>Price policy</key>
     </entry>
     <entry>
-      <key>New appointment</key>
+      <key>Approved</key>
     </entry>
     <entry>
-      <key>New appointment</key>
+      <key>Completed</key>
+    </entry>
+    <entry>
+      <key>In planning</key>
+    </entry>
+    <entry>
+      <key>Campaign Step</key>
+    </entry>
+    <entry>
+      <key>Campaign Participant</key>
+    </entry>
+    <entry>
+      <key>Campaign Steps</key>
+    </entry>
+    <entry>
+      <key>360 Degree</key>
+    </entry>
+    <entry>
+      <key>Campaigns</key>
+    </entry>
+    <entry>
+      <key>Campaign</key>
+    </entry>
+    <entry>
+      <key>Auswertung</key>
+    </entry>
+    <entry>
+      <key>Reihenfolge</key>
+    </entry>
+    <entry>
+      <key>Zuständiger</key>
+    </entry>
+    <entry>
+      <key>Schritte</key>
+    </entry>
+    <entry>
+      <key>Teilnehmer</key>
+    </entry>
+    <entry>
+      <key>VAT in %</key>
+    </entry>
+    <entry>
+      <key>Kampagnen Schritte</key>
+    </entry>
+    <entry>
+      <key>Kampagnenschritte</key>
+    </entry>
+    <entry>
+      <key>Marketing</key>
+    </entry>
+    <entry>
+      <key>Die maximale Anzahl Teilnehmer ist erreicht!</key>
+    </entry>
+    <entry>
+      <key>Neuer Kampagnenschritt</key>
+    </entry>
+    <entry>
+      <key>Kontakteasdasd</key>
+    </entry>
+    <entry>
+      <key>Ende</key>
+    </entry>
+    <entry>
+      <key>Neue Kampagne</key>
+    </entry>
+    <entry>
+      <key>Beginn</key>
     </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index 7164ccd51a883f52e7d1ea1e35db08177c72e4ac..f2cbdb9e35f964542393205a5ea8b9c0b990cfed 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -3328,6 +3328,63 @@
       <key>Price policy</key>
       <value>Preispolitik</value>
     </entry>
+    <entry>
+      <key>Approved</key>
+      <value>Freigegeben</value>
+    </entry>
+    <entry>
+      <key>Completed</key>
+      <value>Abgeschlossen</value>
+    </entry>
+    <entry>
+      <key>In planning</key>
+      <value>In Planung</value>
+    </entry>
+    <entry>
+      <key>Auswertung</key>
+    </entry>
+    <entry>
+      <key>Reihenfolge</key>
+    </entry>
+    <entry>
+      <key>Zuständiger</key>
+    </entry>
+    <entry>
+      <key>Schritte</key>
+    </entry>
+    <entry>
+      <key>Teilnehmer</key>
+    </entry>
+    <entry>
+      <key>VAT in %</key>
+    </entry>
+    <entry>
+      <key>Kampagnen Schritte</key>
+    </entry>
+    <entry>
+      <key>Kampagnenschritte</key>
+    </entry>
+    <entry>
+      <key>Marketing</key>
+    </entry>
+    <entry>
+      <key>Die maximale Anzahl Teilnehmer ist erreicht!</key>
+    </entry>
+    <entry>
+      <key>Neuer Kampagnenschritt</key>
+    </entry>
+    <entry>
+      <key>Kontakteasdasd</key>
+    </entry>
+    <entry>
+      <key>Ende</key>
+    </entry>
+    <entry>
+      <key>Neue Kampagne</key>
+    </entry>
+    <entry>
+      <key>Beginn</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 d514db6237ebea82da4c571982c1dbfbbabfc3cf..e860ccd032dce35da10f7735638cee1e68909357 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -2590,10 +2590,76 @@
       <key>Price policy</key>
     </entry>
     <entry>
-      <key>New appointment</key>
+      <key>Approved</key>
     </entry>
     <entry>
-      <key>New appointment</key>
+      <key>Completed</key>
+    </entry>
+    <entry>
+      <key>In planning</key>
+    </entry>
+    <entry>
+      <key>Campaign Step</key>
+    </entry>
+    <entry>
+      <key>Campaign Participant</key>
+    </entry>
+    <entry>
+      <key>Campaign Steps</key>
+    </entry>
+    <entry>
+      <key>360 Degree</key>
+    </entry>
+    <entry>
+      <key>Campaigns</key>
+    </entry>
+    <entry>
+      <key>Campaign</key>
+    </entry>
+    <entry>
+      <key>Auswertung</key>
+    </entry>
+    <entry>
+      <key>Reihenfolge</key>
+    </entry>
+    <entry>
+      <key>Zuständiger</key>
+    </entry>
+    <entry>
+      <key>Schritte</key>
+    </entry>
+    <entry>
+      <key>Teilnehmer</key>
+    </entry>
+    <entry>
+      <key>VAT in %</key>
+    </entry>
+    <entry>
+      <key>Kampagnen Schritte</key>
+    </entry>
+    <entry>
+      <key>Kampagnenschritte</key>
+    </entry>
+    <entry>
+      <key>Marketing</key>
+    </entry>
+    <entry>
+      <key>Die maximale Anzahl Teilnehmer ist erreicht!</key>
+    </entry>
+    <entry>
+      <key>Neuer Kampagnenschritt</key>
+    </entry>
+    <entry>
+      <key>Kontakteasdasd</key>
+    </entry>
+    <entry>
+      <key>Ende</key>
+    </entry>
+    <entry>
+      <key>Neue Kampagne</key>
+    </entry>
+    <entry>
+      <key>Beginn</key>
     </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
diff --git a/neonView/CampaignEdit_view/CampaignEdit_view.aod b/neonView/CampaignEdit_view/CampaignEdit_view.aod
index 3e68616f45ca5fcbc9e363c9920971d6fdbbfb01..dd06eea8194832d8c8b08990df19acc571d52448 100644
--- a/neonView/CampaignEdit_view/CampaignEdit_view.aod
+++ b/neonView/CampaignEdit_view/CampaignEdit_view.aod
@@ -19,15 +19,19 @@
       <title>Neue Kampagne</title>
       <fields>
         <entityFieldLink>
-          <name>8471feb0-7688-4c69-96b0-f731bb87718a</name>
+          <name>df6356cf-e0bd-4947-8163-736301e622cf</name>
           <entityField>NAME</entityField>
         </entityFieldLink>
         <entityFieldLink>
-          <name>83a486a0-3297-4d6d-85bd-77f0f42b80d6</name>
+          <name>57992f29-2e55-4f1f-8652-c2817a3b257e</name>
           <entityField>EMPLOYEE_CONTACT_ID</entityField>
         </entityFieldLink>
         <entityFieldLink>
-          <name>4d4eb038-e712-4e62-8457-0cd84de1883a</name>
+          <name>8372cca8-be9f-4910-bebd-64bd41cc7083</name>
+          <entityField>STATE</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>114121d3-093a-40e7-9e0e-f187c9eaa5f1</name>
           <entityField>DESCRIPTION</entityField>
         </entityFieldLink>
       </fields>
diff --git a/neonView/CampaignFilter_view/CampaignFilter_view.aod b/neonView/CampaignFilter_view/CampaignFilter_view.aod
index 5595b17ce37d6b14d4e8121ea67a2d7082308482..c577c540861ae4534886b36a6203236bbb4e901e 100644
--- a/neonView/CampaignFilter_view/CampaignFilter_view.aod
+++ b/neonView/CampaignFilter_view/CampaignFilter_view.aod
@@ -30,6 +30,10 @@
           <entityField>DATE_END</entityField>
           <width v="100" />
         </neonTableColumn>
+        <neonTableColumn>
+          <name>3f075c57-e61a-4db2-a402-141da6bbf29d</name>
+          <entityField>STATE</entityField>
+        </neonTableColumn>
       </columns>
     </tableViewTemplate>
   </children>
diff --git a/neonView/CampaignPreview_view/CampaignPreview_view.aod b/neonView/CampaignPreview_view/CampaignPreview_view.aod
index cf627fdfa814c70622f68a0f711ee61d660157a1..e643d6950461c256dea14afee9230b3b2af6430e 100644
--- a/neonView/CampaignPreview_view/CampaignPreview_view.aod
+++ b/neonView/CampaignPreview_view/CampaignPreview_view.aod
@@ -13,7 +13,7 @@
     <cardViewTemplate>
       <name>Header</name>
       <titleField>NAME</titleField>
-      <subtitleField></subtitleField>
+      <subtitleField>STATE</subtitleField>
       <descriptionField>DESCRIPTION</descriptionField>
       <entityField>#ENTITY</entityField>
     </cardViewTemplate>
diff --git a/others/db_changes/data_alias/basic/2019.2/CampaignManagement/create_campaign.xml b/others/db_changes/data_alias/basic/2019.2/CampaignManagement/create_campaign.xml
index 0dcbf0ab91610036e463d16655d1deba78450157..54404f2efe3b9073b0fe44e34f8176c728ac236e 100644
--- a/others/db_changes/data_alias/basic/2019.2/CampaignManagement/create_campaign.xml
+++ b/others/db_changes/data_alias/basic/2019.2/CampaignManagement/create_campaign.xml
@@ -20,6 +20,9 @@
             </column>
             <column name="USER_EDIT" type="NVARCHAR(50)" />
             <column name="DATE_EDIT" type="DATE" />
+            <column name="STATE" type="CHAR(36)">
+                <constraints nullable="false"/>
+            </column>
         </createTable>
     </changeSet>
 </databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/CampaignManagement/create_campaignState.xml b/others/db_changes/data_alias/basic/2019.2/CampaignManagement/create_campaignState.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6b0cdb1acceef93da62c484ece32f6580634a475
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/CampaignManagement/create_campaignState.xml
@@ -0,0 +1,35 @@
+<?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">
+    <changeSet author="d.buechler" id="a3212838-7473-4e9d-bbf4-49dec0c1c399">
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="8d95cad1-3ab2-4b6c-9b38-064cb914216d"/>
+
+            <column name="KEYID" value="e04c9c59-0590-463c-a10e-e25c583e9cf2"/>
+            <column name="TITLE" value="In planning"/>
+            <column name="CONTAINER" value="CampaignManagementStates"/>
+            <column name="SORTING" valueNumeric="1"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="3e5036a1-43a1-4bb1-ad56-ed42df7c9538"/>
+
+            <column name="KEYID" value="42e1ee2b-0108-4ccf-ab43-29cbcb0377bf"/>
+            <column name="TITLE" value="Approved"/>
+            <column name="CONTAINER" value="CampaignManagementStates"/>
+            <column name="SORTING" valueNumeric="2"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="0759da45-5a5b-4163-a3a1-6a19f5a196c5"/>
+
+            <column name="KEYID" value="db1f6e61-07ed-4185-abdb-f9103e5ee3e6"/>
+            <column name="TITLE" value="Completed"/>
+            <column name="CONTAINER" value="CampaignManagementStates"/>
+            <column name="SORTING" valueNumeric="3"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/CampaignManagement/create_campaignStepState.xml b/others/db_changes/data_alias/basic/2019.2/CampaignManagement/create_campaignStepState.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f6f76c455b1bed58831e1e9d747c5c294f534f26
--- /dev/null
+++ b/others/db_changes/data_alias/basic/2019.2/CampaignManagement/create_campaignStepState.xml
@@ -0,0 +1,35 @@
+<?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">
+    <changeSet author="d.buechler" id="d5e7a9a5-d4a9-4425-a930-39ea2574ca47">
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="0dc9b27b-56d8-4650-92ee-bf85a3c67cb3"/>
+
+            <column name="KEYID" value="bbf69673-2ec6-46f8-b231-684a31be9fbd"/>
+            <column name="TITLE" value="Open"/>
+            <column name="CONTAINER" value="CampaignManagementStepStates"/>
+            <column name="SORTING" valueNumeric="1"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="b1f5ea38-1b8c-47a8-a8ad-4c6ed9c26cda"/>
+
+            <column name="KEYID" value="1df0f89b-836d-4242-99cb-334764a7abac"/>
+            <column name="TITLE" value="Active"/>
+            <column name="CONTAINER" value="CampaignManagementStepStates"/>
+            <column name="SORTING" valueNumeric="2"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+        <insert tableName="AB_KEYWORD_ENTRY">
+            <column name="AB_KEYWORD_ENTRYID" value="98f4cab1-74b8-4a23-a99a-c3624711beab"/>
+
+            <column name="KEYID" value="2b9904ad-41d0-411c-8c3a-6f31d8e742b3"/>
+            <column name="TITLE" value="Completed"/>
+            <column name="CONTAINER" value="CampaignManagementStepStates"/>
+            <column name="SORTING" valueNumeric="3"/>
+            <column name="ISACTIVE" valueNumeric="1"/>
+            <column name="ISESSENTIAL" valueNumeric="0"/>
+        </insert>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/data_alias/basic/2019.2/changelog.xml b/others/db_changes/data_alias/basic/2019.2/changelog.xml
index 67123b2965b2d7536ae89441bbed23e04fa3685e..3e279f116e5dc3dd5d675ce956cc60f8d8f970ce 100644
--- a/others/db_changes/data_alias/basic/2019.2/changelog.xml
+++ b/others/db_changes/data_alias/basic/2019.2/changelog.xml
@@ -110,4 +110,6 @@
     <include relativeToChangelogFile="true" file="CampaignManagement/create_campaignStep.xml"/>
     <include relativeToChangelogFile="true" file="CampaignManagement/create_campaignParticipant.xml"/>
     <include relativeToChangelogFile="true" file="CampaignManagement/create_campaignParticipantLog.xml"/>
+    <include relativeToChangelogFile="true" file="CampaignManagement/create_campaignState.xml"/>
+    <include relativeToChangelogFile="true" file="CampaignManagement/create_campaignStepState.xml"/>
 </databaseChangeLog>
diff --git a/process/KeywordRegistry_basic/process.js b/process/KeywordRegistry_basic/process.js
index 2addda46a43b75ce9367de9691e7cade21cd31eb..aec2b56a9c1bec9e874948f2322834b0a2b09996 100644
--- a/process/KeywordRegistry_basic/process.js
+++ b/process/KeywordRegistry_basic/process.js
@@ -60,4 +60,6 @@ $KeywordRegistry.salesprojectCompetitionState = function(){return "SalesprojectC
 $KeywordRegistry.objectRelationType = function(){return "ObjectRelationType"};
 $KeywordRegistry.deliveryTerm = function(){return "DeliveryTerm"};
 $KeywordRegistry.paymentTerm = function(){return "PaymentTerm"};
+$KeywordRegistry.campaignState = function(){return "CampaignManagementStates"};
+$KeywordRegistry.campaignStepState = function(){return "CampaignManagementStepStates"};