diff --git a/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod b/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod
index 29aff4640e7d1b3091d0a8cdf4444ad2d860f2c9..4ca34f853b313081f74d2689ae331dbf806ab883 100644
--- a/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod
+++ b/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod
@@ -26,6 +26,13 @@
         <node name="INTERNAL_ADMINISTRATOR" kind="159" />
       </node>
     </node>
+    <node name="Marketing" kind="123" title="Marketing">
+      <icon>VAADIN:GROUP</icon>
+      <node name="Group4" kind="123" title="">
+        <node name="Campaign" kind="10077" />
+        <node name="INTERNAL_ADMINISTRATOR" kind="159" />
+      </node>
+    </node>
     <node name="ADMINISTRATION" kind="123" title="Administration">
       <icon>VAADIN:CONTROLLER</icon>
       <node name="Group3" kind="123" title="">
diff --git a/entity/CampaignStep_entity/CampaignStep_entity.aod b/entity/CampaignStep_entity/CampaignStep_entity.aod
new file mode 100644
index 0000000000000000000000000000000000000000..176cccac13203b0836bcbd6a29064c9ff6649e3b
--- /dev/null
+++ b/entity/CampaignStep_entity/CampaignStep_entity.aod
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.0">
+  <name>CampaignStep_entity</name>
+  <title>Campaign Step</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <recordContainer>db</recordContainer>
+  <entityFields>
+    <entityProvider>
+      <name>#PROVIDER</name>
+    </entityProvider>
+    <entityField>
+      <name>CAMPAIGNSTEPID</name>
+      <valueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/campaignstepid/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>CAMPAIGN_ID</name>
+    </entityField>
+    <entityField>
+      <name>EMPLOYEE_CONTACT_ID</name>
+    </entityField>
+    <entityField>
+      <name>NAME</name>
+    </entityField>
+    <entityField>
+      <name>DATE_START</name>
+    </entityField>
+    <entityField>
+      <name>DATE_END</name>
+    </entityField>
+    <entityField>
+      <name>STATE</name>
+    </entityField>
+    <entityField>
+      <name>SORTING</name>
+    </entityField>
+    <entityField>
+      <name>USER_NEW</name>
+    </entityField>
+    <entityField>
+      <name>DATE_NEW</name>
+    </entityField>
+    <entityField>
+      <name>USER_EDIT</name>
+    </entityField>
+    <entityField>
+      <name>DATE_EDIT</name>
+    </entityField>
+    <entityProvider>
+      <name>CampaignSteps</name>
+      <fieldType>DEPENDENCY_IN</fieldType>
+      <dependencies>
+        <entityDependency>
+          <name>421e6cc2-f874-4834-b022-fe1b253d50af</name>
+          <entityName>Campaign_entity</entityName>
+          <fieldName>CampaignSteps</fieldName>
+          <isConsumer v="false" />
+        </entityDependency>
+      </dependencies>
+    </entityProvider>
+    <entityParameter>
+      <name>campaignId_param</name>
+      <expose v="true" />
+      <triggerRecalculation v="true" />
+      <description>PARAMETER</description>
+    </entityParameter>
+  </entityFields>
+  <recordContainers>
+    <dbRecordContainer>
+      <name>db</name>
+      <alias>Data_alias</alias>
+      <linkInformation>
+        <linkInformation>
+          <name>0199eaa2-5fc5-4f91-a1ec-a9bc77117f69</name>
+          <tableName>CAMPAIGNSTEP</tableName>
+          <primaryKey>CAMPAIGNSTEPID</primaryKey>
+          <isUIDTable v="false" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
+      <recordFieldMappings>
+        <dbRecordFieldMapping>
+          <name>CAMPAIGN_ID.value</name>
+          <recordfield>CAMPAIGNSTEP.CAMPAIGN_ID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>CAMPAIGNSTEPID.value</name>
+          <recordfield>CAMPAIGNSTEP.CAMPAIGNSTEPID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_EDIT.value</name>
+          <recordfield>CAMPAIGNSTEP.DATE_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_END.value</name>
+          <recordfield>CAMPAIGNSTEP.DATE_END</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_NEW.value</name>
+          <recordfield>CAMPAIGNSTEP.DATE_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_START.value</name>
+          <recordfield>CAMPAIGNSTEP.DATE_START</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>EMPLOYEE_CONTACT_ID.value</name>
+          <recordfield>CAMPAIGNSTEP.EMPLOYEE_CONTACT_ID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>NAME.value</name>
+          <recordfield>CAMPAIGNSTEP.NAME</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>SORTING.value</name>
+          <recordfield>CAMPAIGNSTEP.SORTING</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>STATE.value</name>
+          <recordfield>CAMPAIGNSTEP.STATE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_EDIT.value</name>
+          <recordfield>CAMPAIGNSTEP.USER_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_NEW.value</name>
+          <recordfield>CAMPAIGNSTEP.USER_NEW</recordfield>
+        </dbRecordFieldMapping>
+      </recordFieldMappings>
+    </dbRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/CampaignStep_entity/entityfields/campaignstepid/valueProcess.js b/entity/CampaignStep_entity/entityfields/campaignstepid/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..4af99287f59a86e98d9b4c552c010fe13c106cc7
--- /dev/null
+++ b/entity/CampaignStep_entity/entityfields/campaignstepid/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.util");
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+    result.string(util.getNewUUID());
\ No newline at end of file
diff --git a/entity/Campaign_entity/Campaign_entity.aod b/entity/Campaign_entity/Campaign_entity.aod
new file mode 100644
index 0000000000000000000000000000000000000000..8da24d4bcaf1aa8d3782a7cbd38d508e61368a97
--- /dev/null
+++ b/entity/Campaign_entity/Campaign_entity.aod
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.0">
+  <name>Campaign_entity</name>
+  <title>Campaign</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <icon>VAADIN:GROUP</icon>
+  <recordContainer>db</recordContainer>
+  <entityFields>
+    <entityProvider>
+      <name>#PROVIDER</name>
+    </entityProvider>
+    <entityField>
+      <name>CAMPAIGNID</name>
+      <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/campaignid/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>NAME</name>
+    </entityField>
+    <entityField>
+      <name>DATE_START</name>
+      <contentType>DATE</contentType>
+    </entityField>
+    <entityField>
+      <name>DATE_END</name>
+      <contentType>DATE</contentType>
+    </entityField>
+    <entityField>
+      <name>EMPLOYEE_CONTACT_ID</name>
+      <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/employee_contact_id/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DESCRIPTION</name>
+    </entityField>
+    <entityField>
+      <name>USER_NEW</name>
+      <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/user_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_NEW</name>
+      <contentType>DATE</contentType>
+      <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/date_new/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>USER_EDIT</name>
+      <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/user_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityField>
+      <name>DATE_EDIT</name>
+      <contentType>DATE</contentType>
+      <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/date_edit/valueProcess.js</valueProcess>
+    </entityField>
+    <entityConsumer>
+      <name>CampaignSteps</name>
+      <fieldType>DEPENDENCY_OUT</fieldType>
+      <dependency>
+        <name>dependency</name>
+        <entityName>CampaignStep_entity</entityName>
+        <fieldName>CampaignSteps</fieldName>
+      </dependency>
+      <children>
+        <entityParameter>
+          <name>campaignId_param</name>
+          <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/campaignsteps/children/campaignid_param/valueProcess.js</valueProcess>
+        </entityParameter>
+      </children>
+    </entityConsumer>
+  </entityFields>
+  <recordContainers>
+    <dbRecordContainer>
+      <name>db</name>
+      <alias>Data_alias</alias>
+      <linkInformation>
+        <linkInformation>
+          <name>ca43f87d-8396-4ce2-bcd6-c0eac74359b3</name>
+          <tableName>CAMPAIGN</tableName>
+          <primaryKey>CAMPAIGNID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
+      <recordFieldMappings>
+        <dbRecordFieldMapping>
+          <name>CAMPAIGNID.value</name>
+          <recordfield>CAMPAIGN.CAMPAIGNID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_EDIT.value</name>
+          <recordfield>CAMPAIGN.DATE_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_END.value</name>
+          <recordfield>CAMPAIGN.DATE_END</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_NEW.value</name>
+          <recordfield>CAMPAIGN.DATE_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_START.value</name>
+          <recordfield>CAMPAIGN.DATE_START</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DESCRIPTION.value</name>
+          <recordfield>CAMPAIGN.DESCRIPTION</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>EMPLOYEE_CONTACT_ID.value</name>
+          <recordfield>CAMPAIGN.EMPLOYEE_CONTACT_ID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>NAME.value</name>
+          <recordfield>CAMPAIGN.NAME</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_EDIT.value</name>
+          <recordfield>CAMPAIGN.USER_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_NEW.value</name>
+          <recordfield>CAMPAIGN.USER_NEW</recordfield>
+        </dbRecordFieldMapping>
+      </recordFieldMappings>
+    </dbRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/Campaign_entity/entityfields/campaignid/valueProcess.js b/entity/Campaign_entity/entityfields/campaignid/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..4af99287f59a86e98d9b4c552c010fe13c106cc7
--- /dev/null
+++ b/entity/Campaign_entity/entityfields/campaignid/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.util");
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+    result.string(util.getNewUUID());
\ No newline at end of file
diff --git a/entity/Campaign_entity/entityfields/campaignsteps/children/campaignid_param/valueProcess.js b/entity/Campaign_entity/entityfields/campaignsteps/children/campaignid_param/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..8a0c74b5a7f4891019a1d30e0de316fe89552f86
--- /dev/null
+++ b/entity/Campaign_entity/entityfields/campaignsteps/children/campaignid_param/valueProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("system.vars");
+
+result.string(vars.getString("$field.CAMPAIGN_ID"));
\ No newline at end of file
diff --git a/entity/Campaign_entity/entityfields/date_edit/valueProcess.js b/entity/Campaign_entity/entityfields/date_edit/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..5e6ef059738e0c724a468685333a5e257ac228ce
--- /dev/null
+++ b/entity/Campaign_entity/entityfields/date_edit/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.util");
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT)
+    result.string(vars.get("$sys.date"));
\ No newline at end of file
diff --git a/entity/Campaign_entity/entityfields/date_new/valueProcess.js b/entity/Campaign_entity/entityfields/date_new/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..a72892783bf2bd04fe353c47f1be0cb570bbb323
--- /dev/null
+++ b/entity/Campaign_entity/entityfields/date_new/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.util");
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+    result.string(vars.get("$sys.date"));
\ No newline at end of file
diff --git a/entity/Campaign_entity/entityfields/employee_contact_id/valueProcess.js b/entity/Campaign_entity/entityfields/employee_contact_id/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/entity/Campaign_entity/entityfields/user_edit/valueProcess.js b/entity/Campaign_entity/entityfields/user_edit/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..6af880ae3e0e2b89b4eee8327ed49f1eefe458af
--- /dev/null
+++ b/entity/Campaign_entity/entityfields/user_edit/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.util");
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT)
+    result.string(vars.get("$sys.user"));
\ No newline at end of file
diff --git a/entity/Campaign_entity/entityfields/user_new/valueProcess.js b/entity/Campaign_entity/entityfields/user_new/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..e518bc75a9494e53a83613dedd943106e74fc00a
--- /dev/null
+++ b/entity/Campaign_entity/entityfields/user_new/valueProcess.js
@@ -0,0 +1,7 @@
+import("system.util");
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+    result.string(vars.get("$sys.user"));
\ No newline at end of file
diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
index 1be3f6f961b8baac44e196d6392bdedc05a5767d..45b1111363298a678861023678c7a9d17fdc3b33 100644
--- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
+++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
@@ -2454,6 +2454,9 @@
     <entry>
       <key>New contact</key>
     </entry>
+    <entry>
+      <key>New appointment</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
   <sqlModels>
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index 58d292f3c4b2c4a7494d74821f1aed077c13b87e..3135727a1c03d9986c8b304ece4bc3ba7c2a048f 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -30,6 +30,10 @@
       <key>Maximal Count</key>
       <value>Maximale Anzahl</value>
     </entry>
+    <entry>
+      <key>Campaign Participant</key>
+      <value>Kampagnen Teilnehmer</value>
+    </entry>
     <entry>
       <key>Entrydate (Month)</key>
       <value>Eingangsdatum (Monat)</value>
@@ -98,6 +102,10 @@
       <key>Status</key>
       <value>Status</value>
     </entry>
+    <entry>
+      <key>Campaigns</key>
+      <value>Kampagnen</value>
+    </entry>
     <entry>
       <key>${SALESPROJECT_MEMBER}</key>
       <value>Projektteam</value>
@@ -152,6 +160,7 @@
     </entry>
     <entry>
       <key>[%0]the given keyword \"%1\" has no match with the possible keywordlist</key>
+      <value></value>
     </entry>
     <entry>
       <key>Activities</key>
@@ -220,6 +229,10 @@
       <key>Gender</key>
       <value>Geschlecht</value>
     </entry>
+    <entry>
+      <key>Campaign Steps</key>
+      <value>Kampagnen Stufen</value>
+    </entry>
     <entry>
       <key>Show all companies</key>
       <value>Alle Firmen anzeigen</value>
@@ -482,6 +495,10 @@
       <key>Commodity group 2</key>
       <value>Warengruppe 2</value>
     </entry>
+    <entry>
+      <key>Campaign Step</key>
+      <value>Kampagnen Stufe</value>
+    </entry>
     <entry>
       <key>Commodity group 1</key>
       <value>Warengruppe 1</value>
@@ -534,6 +551,10 @@
       <key>Product name</key>
       <value>Produktname</value>
     </entry>
+    <entry>
+      <key>Campaign</key>
+      <value>Kampagne</value>
+    </entry>
     <entry>
       <key>Product group</key>
       <value>Produktgruppe</value>
diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
index 7eddc64ec87ed7f7d50ba1e93a313064fe6fe2f3..98253055c95f0de95fcf2cf33ad7f20f4b589acf 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -2478,6 +2478,9 @@
     <entry>
       <key>New contact</key>
     </entry>
+    <entry>
+      <key>New appointment</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/neonContext/Campaign/Campaign.aod b/neonContext/Campaign/Campaign.aod
new file mode 100644
index 0000000000000000000000000000000000000000..1e88a79b6906f51df6abe9bde2c05ea159068af7
--- /dev/null
+++ b/neonContext/Campaign/Campaign.aod
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0">
+  <name>Campaign</name>
+  <title>Campaign</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <icon>VAADIN:GROUP</icon>
+  <mainview>CampaignMain_view</mainview>
+  <filterview>CampaignFilter_view</filterview>
+  <editview>CampaignEdit_view</editview>
+  <preview>CampaignPreview_view</preview>
+  <entity>Campaign_entity</entity>
+  <references>
+    <neonViewReference>
+      <name>7a90a8ed-62e9-47c1-9c8c-2b1019e31da0</name>
+      <view>CampaignFilter_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>b4750aec-8ad6-419b-9b44-2848d90b68d0</name>
+      <view>CampaignMain_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>678bda6a-42f2-49c3-8527-5289e70645a2</name>
+      <view>CampaignEdit_view</view>
+    </neonViewReference>
+    <neonViewReference>
+      <name>2fffb548-0b4f-4986-9b50-aefa2e00bade</name>
+      <view>CampaignPreview_view</view>
+    </neonViewReference>
+  </references>
+</neonContext>
diff --git a/neonView/CampaignEdit_view/CampaignEdit_view.aod b/neonView/CampaignEdit_view/CampaignEdit_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..d7b94e2ca310471911719c40664165814ecfc39f
--- /dev/null
+++ b/neonView/CampaignEdit_view/CampaignEdit_view.aod
@@ -0,0 +1,43 @@
+<?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.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.0">
+  <name>CampaignEdit_view</name>
+  <title>Campaign</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <icon>VAADIN:GROUP</icon>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <genericViewTemplate>
+      <name>Edit</name>
+      <showDrawer v="false" />
+      <drawerCaption></drawerCaption>
+      <entityField>#ENTITY</entityField>
+      <title></title>
+      <fields>
+        <entityFieldLink>
+          <name>8471feb0-7688-4c69-96b0-f731bb87718a</name>
+          <entityField>NAME</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>337a6bbd-8e1f-443c-991d-8c4ac44c928a</name>
+          <entityField>DATE_START</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>9753ff1a-77b8-41c7-9290-ef900dc9e6fe</name>
+          <entityField>DATE_EDIT</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>83a486a0-3297-4d6d-85bd-77f0f42b80d6</name>
+          <entityField>EMPLOYEE_CONTACT_ID</entityField>
+        </entityFieldLink>
+        <entityFieldLink>
+          <name>4d4eb038-e712-4e62-8457-0cd84de1883a</name>
+          <entityField>DESCRIPTION</entityField>
+        </entityFieldLink>
+      </fields>
+    </genericViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/CampaignFilter_view/CampaignFilter_view.aod b/neonView/CampaignFilter_view/CampaignFilter_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..5595b17ce37d6b14d4e8121ea67a2d7082308482
--- /dev/null
+++ b/neonView/CampaignFilter_view/CampaignFilter_view.aod
@@ -0,0 +1,36 @@
+<?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.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.0">
+  <name>CampaignFilter_view</name>
+  <title>Campaign</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <icon>VAADIN:GROUP</icon>
+  <filterable v="true" />
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <tableViewTemplate>
+      <name>Campaigns</name>
+      <entityField>#ENTITY</entityField>
+      <columns>
+        <neonTableColumn>
+          <name>c384e4df-3f29-45b8-b86d-2c6aa253833f</name>
+          <entityField>NAME</entityField>
+          <width v="100" />
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>a66574f0-f104-4579-b1fe-e9f33cd200be</name>
+          <entityField>DATE_START</entityField>
+          <width v="100" />
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>0153b107-544e-4f9a-a734-431d343abc8e</name>
+          <entityField>DATE_END</entityField>
+          <width v="100" />
+        </neonTableColumn>
+      </columns>
+    </tableViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/CampaignMain_view/CampaignMain_view.aod b/neonView/CampaignMain_view/CampaignMain_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..677b8f85598c01e06442270c00997d89b512fba8
--- /dev/null
+++ b/neonView/CampaignMain_view/CampaignMain_view.aod
@@ -0,0 +1,23 @@
+<?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.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.0">
+  <name>CampaignMain_view</name>
+  <title>Campaign</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <masterSlaveLayout>
+      <name>layout</name>
+      <master>3092912e-212f-4e3a-9cde-dca8219f9ad7</master>
+    </masterSlaveLayout>
+  </layout>
+  <children>
+    <neonViewReference>
+      <name>3092912e-212f-4e3a-9cde-dca8219f9ad7</name>
+      <entityField>#ENTITY</entityField>
+      <view>CampaignPreview_view</view>
+    </neonViewReference>
+    <tableViewTemplate>
+      <name>Steps</name>
+      <title>Campaign Steps</title>
+    </tableViewTemplate>
+  </children>
+</neonView>
diff --git a/neonView/CampaignPreview_view/CampaignPreview_view.aod b/neonView/CampaignPreview_view/CampaignPreview_view.aod
new file mode 100644
index 0000000000000000000000000000000000000000..9988e3cb4bab35739c697a8f5ec8282bb18a915b
--- /dev/null
+++ b/neonView/CampaignPreview_view/CampaignPreview_view.aod
@@ -0,0 +1,18 @@
+<?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.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.0">
+  <name>CampaignPreview_view</name>
+  <title>Campaign</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <icon>VAADIN:GROUP</icon>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <cardViewTemplate>
+      <name>Header</name>
+      <titleField>NAME</titleField>
+    </cardViewTemplate>
+  </children>
+</neonView>